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 43 44 45 46 47 48 49
| WITH T1(MOIS, STOCKS) AS
(SELECT
MONTH(PLANNINGS.D_JOUR) AS MOIS,
COUNT(DISTINCT CASE WHEN OUVERTURES.C_NATURE = 'INC' AND OUVERTURES.C_EQUIPE <> 'HDBANQUE' THEN OUVERTURES.IDT_APPEL ELSE NULL END) - COUNT(DISTINCT CASE WHEN CLOTURES.C_NATURE = 'INC' AND CLOTURES.I_APP_ENVIRONN = 'Production' AND CLOTURES.C_EQUIPE <> 'HDBANQUE' THEN CLOTURES.IDT_APPEL ELSE NULL END) AS DELTA
FROM
APPEL AS OUVERTURES RIGHT OUTER JOIN
PLANNINGS ON CONVERT(Char(10), OUVERTURES.D_APPEL, 103) = CONVERT(Char(10), PLANNINGS.D_JOUR, 103) LEFT OUTER JOIN APPEL AS CLOTURES ON CONVERT(Char(10), PLANNINGS.D_JOUR, 103) = CONVERT(Char(10), CLOTURES.D_CLOTTECH, 103)
WHERE
YEAR(PLANNINGS.D_JOUR) = YEAR(CURRENT_TIMESTAMP)
GROUP BY
MONTH(PLANNINGS.D_JOUR)
)
SELECT
T2.MOIS,
SUM(T3.OUVERTS) AS OUVERTS,
SUM(T3.CLOS) AS CLOS,
SUM(T2.STOCK) AS STOCK
FROM
(SELECT
MOIS,
0 AS OUVERTS,
0 AS CLOS,
(SELECT
SUM(STOCKS) AS STOCKS
FROM
T1 AS b
WHERE
MOIS <= a.MOIS
) AS STOCK
FROM T1 AS a
GROUP BY MOIS
) AS T2 INNER JOIN
(SELECT
MONTH(PLANNINGS_1.D_JOUR) AS MOIS,
COUNT(DISTINCT CASE WHEN OUVERTURES.C_NATURE = 'INC' AND OUVERTURES.I_APP_ENVIRONN = 'Production' AND OUVERTURES.C_EQUIPE <> 'HDBANQUE' THEN OUVERTURES.IDT_APPEL ELSE NULL END) AS OUVERTS,
COUNT(DISTINCT CASE WHEN CLOTURES.C_NATURE = 'INC' AND CLOTURES.I_APP_ENVIRONN = 'Production' AND CLOTURES.C_EQUIPE <> 'HDBANQUE' THEN CLOTURES.IDT_APPEL ELSE NULL END) AS CLOS,
0 AS STOCK
FROM
APPEL AS OUVERTURES RIGHT OUTER JOIN
PLANNINGS AS PLANNINGS_1 ON CONVERT(char(10), OUVERTURES.D_APPEL, 103) = CONVERT(char(10), PLANNINGS_1.D_JOUR, 103) LEFT OUTER JOIN
APPEL AS CLOTURES ON CONVERT(char(10), PLANNINGS_1.D_JOUR, 103) = CONVERT(char(10), CLOTURES.D_CLOTTECH, 103)
WHERE
YEAR(PLANNINGS_1.D_JOUR) = YEAR(CURRENT_TIMESTAMP)
GROUP BY
MONTH(PLANNINGS_1.D_JOUR)
) AS T3 ON T2.MOIS = T3.MOIS
GROUP BY T2.MOIS |
Partager