1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| WITH contrat AS (SELECT 1 id_hist, TO_DATE('01/01/2015', 'DD/MM/RRRR') datecrea, 1 idcontrat, 'Contrat 1' titre, 'Contrat Informatique' description, 20000 budget FROM dual
UNION ALL SELECT 2 id_hist, TO_DATE('15/01/2015', 'DD/MM/RRRR') datecrea, 1 idcontrat, 'Contrat 1' titre, 'Contrat Informatique' description, 50000 budget FROM dual
UNION ALL SELECT 3 id_hist, TO_DATE('02/02/2015', 'DD/MM/RRRR') datecrea, 2 idcontrat, 'Contrat 2' titre, 'Contrat Santé' description, 10000 budget FROM dual
UNION ALL SELECT 4 id_hist, TO_DATE('01/03/2015', 'DD/MM/RRRR') datecrea, 2 idcontrat, 'Contrat 2' titre, 'Contrat Consommateur' description, 30000 budget FROM dual
UNION ALL SELECT 5 id_hist, TO_DATE('01/07/2015', 'DD/MM/RRRR') datecrea, 1 idcontrat, 'Contrat 1' titre, 'Contrat Informatique' description, 50000 budget FROM dual
),
module AS (SELECT 13 id_hist, TO_DATE('04/01/2015 ', 'DD/MM/RRRR') datecrea, 1 idmodule, 'Module 1 ' titre, 1 idcontrat FROM dual
UNION ALL SELECT 18 id_hist, TO_DATE('19/01/2015 ', 'DD/MM/RRRR') datecrea, 1 idmodule, 'Module 1 ' titre, 1 idcontrat FROM dual
UNION ALL SELECT 18 id_hist, TO_DATE('19/01/2015 ', 'DD/MM/RRRR') datecrea, 2 idmodule, 'Module 2 ' titre, 1 idcontrat FROM dual
UNION ALL SELECT 30 id_hist, TO_DATE('10/02/2015 ', 'DD/MM/RRRR') datecrea, 1 idmodule, 'Module 1 ' titre, 2 idcontrat FROM dual
UNION ALL SELECT 30 id_hist, TO_DATE('10/02/2015 ', 'DD/MM/RRRR') datecrea, 2 idmodule, 'Module 2 ' titre, 2 idcontrat FROM dual
UNION ALL SELECT 69 id_hist, TO_DATE('19/02/2015 ', 'DD/MM/RRRR') datecrea, 1 idmodule, 'Module 1 ' titre, 2 idcontrat FROM dual
UNION ALL SELECT 71 id_hist, TO_DATE('07/03/2015 ', 'DD/MM/RRRR') datecrea, 2 idmodule, 'Module 2 ' titre, 2 idcontrat FROM dual
UNION ALL SELECT 71 id_hist, TO_DATE('07/03/2015 ', 'DD/MM/RRRR') datecrea, 3 idmodule, 'Module 3 ' titre, 2 idcontrat FROM dual
UNION ALL SELECT 82 id_hist, TO_DATE('25/07/2015 ', 'DD/MM/RRRR') datecrea, 1 idmodule, 'Module 1 ' titre, 1 idcontrat FROM dual
UNION ALL SELECT 82 id_hist, TO_DATE('25/07/2015 ', 'DD/MM/RRRR') datecrea, 3 idmodule, 'Module 3 ' titre, 1 idcontrat FROM dual
)
SELECT id_hist, datecrea, idcontrat, titre, description, budget FROM contrat
UNION ALL
SELECT DISTINCT m.id_hist, m.datecrea, m.idcontrat, c.titre, c.description, c.budget FROM module m, contrat c
WHERE c.idcontrat = m.idcontrat
AND c.id_hist = (SELECT MAX(id_hist) FROM contrat b WHERE b.idcontrat = m.idcontrat AND b.datecrea < m.datecrea)
ORDER BY 2 |
Partager