par
Welden » 15 mars 2011, 13:12
Bonsoir à tous,
Voilà j'ai un problème avec des jointures sur des requêtes. Je m'explique : je suis en train de faire un module de statistique pour un site et je dois donc faire des requêtes assez complexes pour afficher des tableaux et graphiques.
J'ai des produits qui appartiennent obligatoirement à des familles, et peuvent appartenir également à des sous-familles, sous-sous-familles, etc...
En gros :
- Famille
- Sous Famille
- n Sous Famille
- Produits
Voilà je peux donc avoir un nombre infini de sous famille dans ma hiérarchisation.
Mon problème est que lorsque je fais une requête pour voir par exemple combien me rapporte une famille j'ai bien les bon résultat. Mais lorsque je le fait pour une sous famille, ma requête me donne un chiffre qui représente le total de toutes les familles et ne tient plus compte des sous famille.
Voilà une de mes requêtes :
mysql_query("SELECT sous_famille.id_parent AS id_parent, SUM(produit_facture.pu_ttc * produit_facture.qte) AS somme
FROM (produit_facture, sous_famille)
LEFT JOIN produit ON produit.id_stock=produit_facture.id_prod
LEFT JOIN facture ON facture.id_fact=produit_facture.id_fact
WHERE facture.date_fact BETWEEN '$deb' AND '$fin' AND sous_famille.ntf='$ntf' AND sous_famille.hierarchie='$hier'
GROUP BY sous_famille.id_parent");
// $ntf ==> id des grandes familles
// $hier ==> niveau de hierarchisation (0 étant produit)
// $deb et $fin ==> encadrement de dates sélectionnées via un formulaire
Mon résultat me donne donc bien toutes les sous familles séparement mais la somme est un total qui ne tient pas compte de mes conditions.
Mon post est un peu long mais j'espère qu'il en reste néanmoins compréhensible. J'ai bien besoin d'aide, je m'arrache les cheveux depuis deux jours là-dessus. En plus je me doute que ma requête a un problème mais je ne trouve pas.
Merci d'avance pour vos lumières
