Bonjour,
J'ai un soucis avec une de mes requêtes, mais avant je dois vous schématiser mes types de client :
Client --> Partenaire --> Distributeur --> Groupe de distributeur
Chaque type de client est imbriquée dans celui à sa droite. C'est à dire que chaque commande d'un client va se retrouver dans le CA du partenaire auquel il est rattaché, de même le montant de la commande va se retrouver dans le CA du distributeur auquel le partenaire est rattaché etc.
Et chaque partenaire peut avoir plusieurs clients, chaque distributeur peut avoir plusieurs partenaires etc.
Ma requête doit retourner la somme du CA de tout les types de client (sauf client), donc par exemple pour un distributeur la requête doit retournée la somme du CA de ses partenaires, qui lui contient la somme du CA de ses clients.
Je ne suis pas sur que ce soit très clair, mais je ne vois pas comment m'y prendre, pour l'instant ma requête permet de calculer la somme à seulement un niveau c'est-à-dire de prendre le CA d'un partenaire mais pas le CA d'un distributeur ou d'un groupe de distributeur.
La requête :
Si vous avez des pistes je suis preneur
Merci
J'ai un soucis avec une de mes requêtes, mais avant je dois vous schématiser mes types de client :
Client --> Partenaire --> Distributeur --> Groupe de distributeur
Chaque type de client est imbriquée dans celui à sa droite. C'est à dire que chaque commande d'un client va se retrouver dans le CA du partenaire auquel il est rattaché, de même le montant de la commande va se retrouver dans le CA du distributeur auquel le partenaire est rattaché etc.
Et chaque partenaire peut avoir plusieurs clients, chaque distributeur peut avoir plusieurs partenaires etc.
Ma requête doit retourner la somme du CA de tout les types de client (sauf client), donc par exemple pour un distributeur la requête doit retournée la somme du CA de ses partenaires, qui lui contient la somme du CA de ses clients.
Je ne suis pas sur que ce soit très clair, mais je ne vois pas comment m'y prendre, pour l'instant ma requête permet de calculer la somme à seulement un niveau c'est-à-dire de prendre le CA d'un partenaire mais pas le CA d'un distributeur ou d'un groupe de distributeur.
La requête :
SELECT
Partenaire.IDClientPartenaire AS IDClientPartenaire,
Client.Société AS Société,
Client.Telephone AS Telephone,
Client.Ville AS Ville,
Client.TypeClient AS TypeClient,
Client.RemiseEuros AS RemiseEuros,
Client.RemisePourcentage AS RemisePourcentage,
SUM(IFNULL(CommandesEnCours.PrixAppliqueUnitaireTTC,0)) AS Montant
FROM
Partenaire
LEFT OUTER JOIN
Commandes
ON Partenaire.IDClient = Commandes.IDClient
AND Partenaire.IDClientPartenaire = Commandes.IDClientPartenaire
LEFT OUTER JOIN
Client
ON Client.IDClient = Partenaire.IDClientPartenaire
RIGHT OUTER JOIN
CommandesEnCours
ON CommandesEnCours.IDCommandeEntete = Commandes.IDCommandeEntete
WHERE Commandes.IDTypePiece = 7
AND Commandes.CaExterne = 0
GROUP BY Partenaire.IDClientPartenaire,
Client.Société,
Client.Telephone,
Client.Ville,
Client.TypeClient,
RemiseEuros,
RemisePourcentage
Si vous avez des pistes je suis preneur

Merci