Bonjour,
Je ne suis pas très fort en SQL , je ne sais faire que des requêtes de base et c'est pourquoi je vous sollicite.
J'ai deux tables : une table client avec ID_client (int), nom_client (varchar) et points_client (int), et une table facture avec ID_facture, ID_client, montant HT, type_facture (int ; indique si c'est un avoir ou non) (et j'en passe pour cette table).
Un client peut avoir plusieurs factures.
Ce que j'aimerais c'est que dans une seule requête j'obtienne le nombre de clients qui ont eu au moins une facture (pas de client en doublon) (jusque là je sais faire avec count(DISTINCT id_client)) avec en face (c'est là que je n'y arrive pas) la somme des points_clients uniquement pour les clients comptabilisés dans le count(DISTINCT id_client).
Exmple :
toto à 10 points et 3 factures
titi à 20 points et 1 factures
tata à 15 points et 2 factures
je dois obtenir comme résultat de mon unique requête :
nb client=3 nb points=45
Pour l'instant je n'obtient que ça :
nb client=3 (OK) nb points=80 (qui en fait est égal 3*10+1*20+2*15, somme pour chaque client du nombre de points multiplié par le nombre de ses factures )
Voici ma requête qui ne donne pas le bon résultat :
Pouvez-vous m'aider à faire la requête juste ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT count(distinct CLIENT.ID_CLIENT), sum(CLIENT.Points_Client) FROM CLIENT RIGHT OUTER JOIN FACTURE F ON CLIENT.ID_CLIENT = FACTURE.ID_CLIENT
Merci d'avance.
Alf
Partager