Bonjour à tous,
Voilà, j'ai une épine dans le pied !!
Dans l'échantillon de donnée issue de la requête ci-dessous, je ne parviens pas à calculer "Taux_Reb_Day" correctement.
En effet, ce taux doit inclure aussi la SOMME des "QTOT" dont le "MR" est = 0, dans le calcul du OVER PARTITION BY. Soit une SOMME de 249 en plus pour chacun des autres différent "MR".
Le résultat attendu est donc le suivant :
Taux_REB_Day = 5.37 quand "MR" = 01
Taux_REB_Day = 6.39 quand "MR" = 03
Taux_REB_Day = 1.27 quand "MR" = 06
Taux_REB_Day = 0.25 quand "MR" = 19
Je sais que l'explication semble un peu compliqué mais c'est pas facile à expliquer..
Merci pour votre aide.
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
31
32
33
34
35 UP DATREAL MICRO JL MR Libelle QTOT QREB Taux_Reb_DAY 5 2017-05-18 00:00:00.000 H0851 RF 0 27 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 26 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 27 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 30 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 26 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 27 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 30 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 29 0 0 5 2017-05-18 00:00:00.000 H0851 RF 0 27 0 0 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 2 2 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 25 7 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 29 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 1 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 26 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 1 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 28 2 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 29 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 26 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 1 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 27 2 9.68 5 2017-05-18 00:00:00.000 H0851 RF 01 INCLUSIONS 22 1 9.68 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 27 6 17.61 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 1 1 17.61 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 1 1 17.61 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 25 7 17.61 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 2 2 17.61 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 30 2 17.61 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 28 1 17.61 5 2017-05-18 00:00:00.000 H0851 RF 03 RETASSURES RESSUAGE 28 5 17.61 5 2017-05-18 00:00:00.000 H0851 RF 06 MALVENUES-REPRISES-GTTES FROIDES 28 2 6.02 5 2017-05-18 00:00:00.000 H0851 RF 06 MALVENUES-REPRISES-GTTES FROIDES 28 1 6.02 5 2017-05-18 00:00:00.000 H0851 RF 06 MALVENUES-REPRISES-GTTES FROIDES 27 2 6.02 5 2017-05-18 00:00:00.000 H0851 RF 19 MODELES CIRE 1 1 100
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 select UP , DATREAL , MICRO , JL , MR , Libelle , QBON + QREB as QTOT , QREB ,Case When sum(QBON) OVER(PARTITION BY Micro, JL,MR, datreal) + Sum(QREB) OVER(PARTITION BY Micro, JL,MR, datreal) = 0 Then 0 Else Round( (sum(Qreb) OVER(PARTITION BY Micro, JL,MR, datreal) / convert(float,(sum(QBON) OVER(PARTITION BY Micro, JL,MR, datreal) + Sum(QREB) OVER(PARTITION BY Micro, JL,MR, datreal)) ) ) * 100 ,2) End AS Taux_Reb_DAY from dbo.CID06_Analyse_des_Rebuts where UP='5' and Datreal >= Getdate()-100 and QReb >=0 and Micro = 'H0851' and Datreal ='18/05/2017' and JL='RF' order by Datreal, Micro, MR
Partager