|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : mars 2009 Messages : 25 ![]() |
Bonjour, j'ai un problème de somme dans une requête sql.
En gros, j'affiche un nombre d'ordres par statut. Ma requête est la suivante : Code :
Statut Nb_ordres A 12 B 10 C 30 Revenant mnt à ma requête. Je dé commente le champ S.[DSR_LIB_STATUT_ORDRE_PROVISIONING] pour avoir les sous statuts du statut, et là j'ai un résultat qui me semble être incohérent avec le précédent. Par exemple pour le statut A j'ai des sous statut a , b , c , d etc. Logiquement si je fait la somme du nombre d'ordres de ses sous statuts , je devrai trouver la valeur 12 . Or ce n'est pas le cas. Donc est ce que le problème vient du count ou dans le groupe by, ou faudrait-il que je fasse une sous requête de count contenu dans une requête de somme. Merci pour votre aide ! |
||
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : mars 2009 Messages : 25 ![]() |
J'ai modifié ma requête en remplaçant le COUNT par SUM, mais ce n'est pas cohérent. En plus le résultat obtenu n'est pas du tout parlant: les données obtenues sont fausses.
Merci pour vos suggestions ! |
|
|
00
|
|
|
#3 | |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Citation:
vous faite un COUNT(DISTINCT ) Dans la première requête, si une valeur apparait plusieurs fois, elle ne sera comptée qu'une fois. Si vous ajoutez la colonne DSR_LIB_STATUT_ORDRE_PROVISIONING, cette même valeur sera comptée une fois par valeur de DSR_LIB_STATUT_ORDRE_PROVISIONING. Ceci explique la différence... La solution sera peut être du coté des fonctions de fenêtrage (clause OVER), mais un petit jeu d'essai et le résultat attendu seraient pas mal afin de bien comprendre ce que vous voulez. |
|
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : mars 2009 Messages : 25 ![]() |
J'ai résolu le problème en changeant le champ sur lequel je fais le count.
Les enregistrement contenus dans la table ne correspondent pas à l'information que je voulais. J'ai donc fait une jointure sur une autre table pour avoir la bonne info. Et maintenant mon count marche dans les deux cas. Merci d'avoir consacré de votre temps aieuuuu! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com