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 :
J'ai le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 USE ABI_DWH SELECT CASE S.[DSR_ID_STATUT_ORDRE_PROVISIONING_PK] WHEN '1' THEN 'ECHEC' WHEN '11' THEN 'ECHEC' WHEN '12' THEN 'ECHEC' WHEN '7' THEN 'REUSSITE' ELSE 'EN COURS OU EN ATTENTE' END 'Statut' -- ,S.[DSR_LIB_STATUT_ORDRE_PROVISIONING] ,COUNT ( DISTINCT O.[FHP_ID_ORDRE_PROVISIONING]) Nb_OrdresProvisioning FROM [dbo].[ABI_FCT_ORDRE_PROVISINING] O (NOLOCK) LEFT OUTER JOIN [dbo].[ABI_DIM_STATUT_ORDRE_PROVISIONING] S (NOLOCK) ON O.[FHP_STATUT_PROVISIONING_FK] = S.[DSR_ID_STATUT_ORDRE_PROVISIONING_PK] GROUP BY CASE S.[DSR_ID_STATUT_ORDRE_PROVISIONING_PK] WHEN '1' THEN 'ECHEC' WHEN '11' THEN 'ECHEC' WHEN '12' THEN 'ECHEC' WHEN '7' THEN 'REUSSITE' ELSE 'EN COURS OU EN ATTENTE' END --,S.[DSR_LIB_STATUT_ORDRE_PROVISIONING] ORDER BY Statut DESC
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 !
Partager