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
|
SELECT STATFAM.CODE,
frm_MAIN.*,
( CA_2016 - CA_2015 ) / NULLIF(CA_2015, 0) * 100
FROM (SELECT CRITERE1,
Sum(CA_2015) AS CA_2015,
Sum(CA_2016) AS CA_2016,
Grouping(CRITERE1) AS GRPCRITERE1
FROM (SELECT udv_MAIN.STATFAM_ID AS CRITERE1,
DATA + '_' + CONVERT(char(4), ANNEE) AS COL,
VALUE
FROM dashboard.udv_MAIN
JOIN (SELECT STATFAM_ID
FROM dbo.udf_SplitRange('05;06') R
JOIN dashboard.STATFAM
ON STATFAM.CODE BETWEEN R.DEBUT AND R.FIN)
FCFAM1
ON FCFAM1.STATFAM_ID = udv_MAIN.STATFAM_ID
WHERE ( ( udv_MAIN.DATEFACTURE BETWEEN
Dateadd(YEAR, -1, '2016-01-01')
AND
Dateadd(YEAR, -1, '2016-12-31') )
OR ( udv_MAIN.DATEFACTURE BETWEEN
'2016-01-01' AND '2016-12-31'
) )
) SRC
PIVOT (Sum(VALUE)
FOR COL IN ( [CA_2015],
[CA_2016] )) PIV
GROUP BY ROLLUP( CRITERE1 )
) AS frm_MAIN
LEFT JOIN dashboard.STATFAM
ON STATFAM.STATFAM_ID = frm_MAIN.CRITERE1
ORDER BY frm_MAIN.GRPCRITERE1,
STATFAM.CODE
OPTION (OPTIMIZE FOR UNKNOWN) |
Partager