1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| WITH
P AS
(SELECT ID_Produit, DateDeb, DateFin, Prix
FROM Produit),
PP AS
(SELECT P.ID_Produit, P.DateDeb, MAX(P1.DateDeb) AS DatePrec
FROM Produit P1
INNER JOIN P
ON P1.ID_Produit = P.ID_Produit
WHERE P1.DateFin < P.DateDeb
GROUP BY P.ID_Produit, P.DateDeb)
SELECT P.*, PD.Prix AS AncienPrix,
100 * ((P.Prix - PD.Prix) / P.Prix) AS Evolution_PC
FROM P
LEFT OUTER JOIN PP
ON P.ID_Produit = PP.ID_Produit
AND P.DateDeb = PP.DateDeb
LEFT OUTER JOIN P AS PD
ON PP.ID_Produit = PD.ID_Produit
AND PD.DateDeb = PP.DatePrec |