SQL SERVER - Groupement sur case when

Nono21011978 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Sur une requete dans SQL SERVER, j'ai besoin d'attaquer deux tables différentes ( clients et factures ) et en retour il me faut qu'une ligne par client.

Dans la table clients, je recupere les champs Code, Nom, ....

Dans la table factures je recupere des champs simple du type Montant et des champs calculé via un CASE WHEN


clients.numcomptable Code_Client
factures.mtsolde Mt_Du_Facture ,

CASE WHEN factures.blitigenonbloquant+factures.blitigebloquant <> '0'
then 1
else 0
End Nb_Fact_Litige ,


Les deux tables sont à la base triée par code client croissant et par numéro de factures croissantes.

J'ai besoin d'obtenir en resultat :

Mon résultat doit donc me donner mon code client, le montant total des factures dues, et le nombre de factures en litige.

Je ne sais pas comment faire, merci de m'aider
A voir également:

1 réponse

Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,

L'ordre suivant devrait faire ce que tu veux
SELECT code_client , sum(Mt_Du_Facture) asTotalFactureDu ,
sum(case when factures.blitigenonbloquant+factures.blitigebloquant <> '0'
then 1
else 0
End) as NombreFactLitiges
group by code_client

en ajoutant la jointure entre les deux tables
A plus
1
Nono21011978 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Tout d'abord merci, je vais le tester pour voir.

Il me manque juste un petit détail : je rajoute ma jointure et le nom des tables avec FROM et WHERE afin d'avoir une requete du type


SELECT xxxxxxxx
xxxxxxxx

FROM xxxxxxx

WHERE xxxx=xxxx

Le Group By, je dois le mettre après chaque champ que je souhaite groupé ou directement à la fin de la requete apres le Where ??

Merci
0
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392 > Nono21011978 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Ta requête doit être a peu près la suivante:
SELECT a , b , c , ....
FROM table1
WHERE condition1
GROUP BY a , b , ...

Le GROUP by vient à la fin de la commande.

A plus
0