8722 sujets

Développement web côté serveur, CMS

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 :

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 Smiley smile

Merci
Ok, n'oublie pas le "[résolu]" alors Smiley cligne
Ça me paraissait quasi infaisable en SQL pur, soit code serveur+sql, soit plsql...