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
| DECLARE @t TABLE
(
ID INT,
[Type] BIT,
[Date] DATETIME,
commentaire VARCHAR(20)
);
INSERT @t VALUES(123856,'False','24/09/2009 10:20:00','ajout prix'),
(123859,'True','24/09/2009 14:00:00','validation'),
(123895,'False','25/09/2009 14:30:00','ajout prix'),
(123895,'False','25/09/2009 15:00:00','ajout quantite'),
(123895,'True','25/09/2009 17:00:00','validation'),
(186914,'False','24/06/2009 14:00:50','ajout prix'),
(186914,'True','25/09/2009 17:00:00','ajout quantite'),
(186917,'False','25/09/2009 15:00:00','ajout quantite');
WITH t_boundaries
AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY ID,Date) AS num,
*
FROM @t
),
t_boundaries_2
AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY ID,Date) AS num2,
ID AS ID2,
Type AS type2,
Date AS date2,
commentaire AS commentaire2
FROM @t
)
SELECT
t.ID,
t.Type,
t.Date,
t.commentaire
FROM t_boundaries t
LEFT JOIN t_boundaries_2 t2
ON t.num = t2.num2 - 1
AND t.ID = t2.ID2
WHERE num2 IS NULL
ORDER BY t.ID; |
Partager