Bonjour,
J'ai 3 tables (je les simplifie) :
FACTURES (id_facture, total, date)
PROJETS (id_projet, description, id_client, id_facture)
CLIENTS (id_client, client)
Je souhaite faire une requête qui me donne la somme totale pour un mois donné.
Une facture peut avoir plusieurs projets donc forcément, un SUM dans cette configuration va additionner l'ensemble des lignes projets pour les factures trouvées à cette date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT sum(total) AS sum_facture FROM FACTURES, CLIENTS, PROJETS WHERE PROJETS.id_client=CLIENTS.id_client AND PROJETS.id_facture = FACTURES.id_facture AND date_format(date, "%m") LIKE "03" AND date_format(date, "%Y") LIKE "2014"'
Si le total de la facture est à 250 € avec 3 projets, il me renvoi 750 ! (je comprends sa logique...)
Si il y a 2 factures dans le mois à 100 et 150 €, il fait pareil que le cas du haut, il additionne l'ensemble des projets pour les factures...
Si j'avais une seule facture dans le mois, je pourrais juste faire ça, et ça fonctionne :
Mais vu que j'en ai plusieurs, y a-t-il une possibilité pour avoir la bonne info avec ce type de tables ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT total FROM FACTURES, CLIENTS, PROJETS WHERE PROJETS.id_client=CLIENTS.id_client AND PROJETS.id_facture = FACTURES.id_facture AND date_format(date, "%m") LIKE "03" AND date_format(date, "%Y") LIKE "2014"' GROUP BY 1
Je pense que c'est un truc tout con mais moins je pratique le SQL et plus j'oublie...
Merci pour votre aide !
Partager