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
|
WITH libelles AS
(
SELECT MAX ( CASE WHEN DRRT = 'S1' THEN DRDL01 END) AS Stat_1_Lib
,MAX ( CASE WHEN DRRT = 'S2' THEN DRDL01 END) AS Stat_2_Lib
,MAX ( CASE WHEN DRRT = 'S3' THEN DRDL01 END) AS Stat_3_Lib
,MAX ( CASE WHEN DRRT = 'S3' THEN DRDL01 END) AS Stat_3_Lib
,MAX ( CASE WHEN DRRT = 'P1' THEN DRDL01 END) AS Stat_4_Lib
,MAX ( CASE WHEN DRRT = 'P2' THEN DRDL01 END) AS Stat_5_Lib
,MAX ( CASE WHEN DRRT = 'P3' THEN DRDL01 END) AS Stat_6_Lib
,SUBSTR(DRKY,-3) AS DRKY_LAST_3
FROM PRODCTL.PRODCTL_F0005
WHERE DRSY = '41'
GROUP BY SUBSTR(DRKY,-3)
-- note : s'il manque un libelle, la ligne sera quand même retournée
-- si on veut rajouter le controle que tous les libellés soient présents
-- il faut rajouter HAVING count(*) = 6
)
SELECT
APRODDTA___F4101_.IMLITM AS Article_ID,
APRODDTA___F4101_.IMDSC1 AS Designation,
APRODDTA___F4101_.IMSRP1 AS Stat_1,
libelles.Stat_1_Lib,
APRODDTA___F4101_.IMSRP2 AS Stat_2,
libelles.Stat_2_Lib,
APRODDTA___F4101_.IMSRP3 AS Stat_3,
libelles.Stat_3_Lib,
APRODDTA___F4101_.IMPRP1 AS Stat_4,
libelles.Stat_4_Lib,
APRODDTA___F4101_.IMPRP2 AS Stat_5,
libelles.Stat_5_Lib,
APRODDTA___F4101_.IMPRP3 AS Stat_6,
libelles.Stat_6_Lib,
APRODDTA___F4101_.IMUOM1 AS UOM
FROM
PRODDTA.F4101 APRODDTA___F4101_
INNER JOIN libelles
ON libelles.DRKY_LAST_3 = APRODDTA___F4101_.IMSRP1 |
Partager