Bonjour à tous
je vous donne ma requête et je vous explique ensuite
alors cette requête fonctionne bien sauf que ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT f.id, f.date, f.code, do.code as co, f.facture_avoir, do.libelle as dossier, do.activite, f.statut, f.rs_c, conc.commande, SUM((dd.prix * (1 + (dd.m / 100))) * dd.q) as total_ht, SUM(((dd.prix * (1 + (dd.m / 100))) * dd.q) * (1 + (dd.tva / 100))) as total_ttc FROM ".FACTURE." f LEFT JOIN ".DOSSIER." do ON do.id = f.dossier AND do.statut <> 99 LEFT JOIN ".CONCERNER." conc ON conc.facture=f.id LEFT JOIN ".FACTURE_DET." dd ON dd.facture=f.id AND dd.type=4 AND dd.h=1 WHERE f.date LIKE '".$dateRecherche."%' AND f.facture_avoir=0 GROUP BY f.id ORDER BY f.code ASC
je fais une jointure avec la table CONCERNER (qui me permet d'accéder à conc.commande), le soucis c'est que dans CONCERNER je peux avoir X lignes qui sont égales à conc.facture=f.id
ce qui fait que les deux SUM(...) sont multipliés par X quand j'ai X lignes
ce que j'ai fait c'est mettre un distinct sur conc.commande mais ça m'a fait planter la requête
j'ai également fait un groupement : GROUP BY f.id, conc.commande
mais là si j'ai X lignes il me les affiche toutes (donc pas groupées)
je viens donc vous demander un peu d'aide
je pense qu'il faudrait quelque chose qui serait un équivalent de :
mais qui bien sûr n'existe pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part DISTINCT LEFT JOIN ".CONCERNER." conc ON conc.facture=f.id
merci d'avance
Partager