Bonjour à tous,
je coince sur un soucis mysql.
Je dois ajouter une fonctionnalité sur un petit jeux;
Chaque membre a un ou plusieurs sites (pas site web mais sites de construction) et une seule banque.
Chaque membre peut mettre ses réserves d'or (de leur banque) dans leur différents sites pour être en sécurité, pour le moment ils doivent toujours le faire manuellement.
Je dois créer une tâche automatisé qui va retirer l'or qu'ils ont à la banque et le mettre dans leur réserves d'or sur leur différents site, en fonction du nombre qu'ils choisissent (j'espère que j'arrive à me faire comprendre O_o), s'il leur solde en banque est plus petit que ce qui doit être ajouté, alors RIEN n'est ajouté.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Tables :
Membre :
Id
banque (montant d'or disponible, qui n'est pas encore dans leur réserve d'or)
Site :
Id
membreId (pour savoir à qui appartient la réserve d'or)
reserveOr (le montant d'or qu'ils ont sur le site en question)
AttribuerOr :
Id
membreId
siteId (pour savoir quel site doit être updaté)
montant (le montant d'or qui va être retiré de la banque et ajouté sur le site) |
Ce que je dois faire dans la tâche automatisé c'est faire une seule ligne de code SQL.
Si c'est vraiment pas possible, alors il faudrait faire une boucle dans la procédure stockée...
J'ai donc commencé la requete sans succès ...
Update site SET reserveOr = (reserveOr + (SELECT montant FROM AttribuerOr WHERE AttribuerOr.membreId = site.membreId) ) WHERE site.membreId IN (SELECT membre.id FROM membre INNER JOIN AttribuerOr WHERE membre.banque >= AttribuerOr.montant)
Edit : et évidement l'update : l'or qui a été ajouté sur leur site doit être retiré de leur banque
Merci de votre aide
Partager