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