Bonjour,
voici une partie de ma proc ( je débute )
La partie qui pose problèmes :
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
36
37
38
39
40
41
42 create table #TOTAL_EFFECTIF ( CLI_ORIGINE varchar(6), ANNEE int, MOIS int, TOT_CA money, TOT_CA_CUM money, TOT_VOL numeric(30,2), TOT_VOL_CUM numeric(30,2), TOT_PMV decimal(10,2), TOT_PMV_CUM decimal(10,2) ) insert into #TOTAL_EFFECTIF select CLI_ORIGINE, ANNEE, MOIS, sum(isnull(FAC_CA,0)), sum(isnull(FAC_CA_CUMULE,0)), sum(isnull(FAC_VOL,0)), sum(isnull(FAC_VOL_CUMULE,0)), sum(isnull(PMV,0)), sum(isnull(PMV_CUMUL,0)) from MKT_005 group by CLI_ORIGINE,ANNEE,MOIS Update MKT_005 Set A.POIDS_CA=100*A.FAC_CA/B.TOT_CA, A.POIDS_CA_CUMULE=100*A.FAC_CA_CUMULE/B.TOT_CA_CUM, A.POIDS_VOL=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL)/convert(numeric(30,2),B.TOT_VOL)), A.POIDS_VOL_CUMULE=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL_CUMULE)/convert(numeric(30,2),B.TOT_VOL_CUM)), A.POIDS_PMV=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV)/convert(decimal(10,2),B.TOT_PMV)), A.POIDS_PMV_CUMUL=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV_CUMUL)/convert(decimal(10,2),B.TOT_PMV_CUM)) from MKT_005 A, #TOTAL_EFFECTIF B where A.CLI_ORIGINE=B.CLI_ORIGINE and A.ANNEE=B.ANNEE and A.MOIS=B.MOIS and A.FTP_CODE=B.FTP_CODE and A.PSU_CODE=B.PSU_CODE
Au niveau des lignes de calcul comme la suivante :
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 Update MKT_005 Set A.POIDS_CA=100*A.FAC_CA/B.TOT_CA, A.POIDS_CA_CUMULE=100*A.FAC_CA_CUMULE/B.TOT_CA_CUM, A.POIDS_VOL=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL)/convert(numeric(30,2),B.TOT_VOL)), A.POIDS_VOL_CUMULE=convert(numeric(30,2),100*convert(numeric(30,2),A.FAC_VOL_CUMULE)/convert(numeric(30,2),B.TOT_VOL_CUM)), A.POIDS_PMV=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV)/convert(decimal(10,2),B.TOT_PMV)), A.POIDS_PMV_CUMUL=convert(decimal(10,2),100*convert(decimal(10,2),A.PMV_CUMUL)/convert(decimal(10,2),B.TOT_PMV_CUM)) from MKT_005 A, #TOTAL_EFFECTIF B where A.CLI_ORIGINE=B.CLI_ORIGINE and A.ANNEE=B.ANNEE and A.MOIS=B.MOIS and A.FTP_CODE=B.FTP_CODE and A.PSU_CODE=B.PSU_CODE
En fait ma table MKT_005 contient 2 niveaux de regroupement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part A.POIDS_CA=100*A.FAC_CA/B.TOT_CA,
FTP_CODE
PSU_CODE
Et en fait je voudrais le pourcentage de chaque PSU_CODE par rapport au total de chaque code.
Si j'ai pas été clair
FTP_CODE1
PSU_CODE11
PSU_CODE12
PSU_CODE13
PSU_CODE14
FTP_CODE2
PSU_CODE21
PSU_CODE22
PSU_CODE23
PSU_CODE24
Et je voudrais calculer dans une procédure le % pour chaque PSU_CODE par rapport au total de son FTP_CODE.
Partager