1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| WITH HisTable AS
( SELECT 1 NumSeq, 111 articleID, 'Submit' Statut, TO_DATE('20/12/2017', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 2 NumSeq, 111 articleID, 'Approuve' Statut, TO_DATE('28/12/2017', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 3 NumSeq, 111 articleID, 'Approuve' Statut, TO_DATE('04/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 4 NumSeq, 111 articleID, 'Accept' Statut, TO_DATE('10/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 1 NumSeq, 222 articleID, 'Submit' Statut, TO_DATE('02/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 2 NumSeq, 222 articleID, 'Approuve' Statut, TO_DATE('03/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 3 NumSeq, 222 articleID, 'Accept' Statut, TO_DATE('20/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 4 NumSeq, 222 articleID, 'Approuve' Statut, TO_DATE('24/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 1 NumSeq, 333 articleID, 'Submit' Statut, TO_DATE('25/12/2017', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 2 NumSeq, 333 articleID, 'Approuve' Statut, TO_DATE('07/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
UNION ALL SELECT 3 NumSeq, 333 articleID, 'Approuve' Statut, TO_DATE('15/01/2018', 'DD/MM/RRRR') Date_Actio FROM DUAL
)
SELECT articleID, MAX(DECODE(Statut, 'Approuve', Date_Actio)) Date_Action_Appr, MAX(DECODE(Statut, 'Accept', Date_Actio)) Date_Action_Accep
FROM HisTable a
WHERE Statut = 'Accept'
OR (Statut = 'Approuve' AND NumSeq <= NVL((SELECT MAX(b.NumSeq) FROM HisTable b WHERE b.articleID = a.articleID AND b.Statut = 'Accept'), NumSeq)
)
GROUP BY articleID
ORDER BY 1 |
Partager