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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
DECLARE @Planning_Proposal_Temp AS TABLE(object varchar(10), dateFrom datetime2, dateTo datetime2)
INSERT INTO @Planning_Proposal_Temp(object, dateFrom, dateTo )
SELECT *
FROM (VALUES
('A', '2019-11-06 09:00:00', '2019-11-06 09:15:00'),
('A', '2019-11-06 09:05:00', '2019-11-06 09:20:00'),
('A', '2019-11-06 09:10:00', '2019-11-06 09:25:00'),
('A', '2019-11-06 09:15:00', '2019-11-06 09:30:00'),
('A', '2019-11-06 09:20:00', '2019-11-06 09:35:00'),
('A', '2019-11-06 09:25:00', '2019-11-06 09:40:00'),
('A', '2019-11-06 09:30:00', '2019-11-06 09:45:00'),
('A', '2019-11-06 09:35:00', '2019-11-06 09:50:00'),
('A', '2019-11-06 09:40:00', '2019-11-06 09:55:00'),
('A', '2019-11-06 09:45:00', '2019-11-06 10:00:00'),
('B', '2019-11-06 09:05:00', '2019-11-06 09:20:00'),
('B', '2019-11-06 09:10:00', '2019-11-06 09:25:00'),
('B', '2019-11-06 09:15:00', '2019-11-06 09:30:00'),
('B', '2019-11-06 09:35:00', '2019-11-06 09:50:00'),
('B', '2019-11-06 09:40:00', '2019-11-06 09:55:00'),
('B', '2019-11-06 09:45:00', '2019-11-06 10:00:00'),
('B', '2019-11-06 10:00:00', '2019-11-06 10:15:00'),
('B', '2019-11-06 10:05:00', '2019-11-06 10:20:00'),
('B', '2019-11-06 10:10:00', '2019-11-06 10:25:00'),
('B', '2019-11-06 10:15:00', '2019-11-06 10:30:00'),
('C', '2019-11-06 12:00:00', '2019-11-06 12:20:00'),
('C', '2019-11-06 12:40:00', '2019-11-06 13:00:00'),
('C', '2019-11-06 12:45:00', '2019-11-06 13:05:00'),
('C', '2019-11-06 12:50:00', '2019-11-06 13:10:00'),
('C', '2019-11-06 12:55:00', '2019-11-06 13:15:00'),
('C', '2019-11-06 13:00:00', '2019-11-06 13:20:00'),
('C', '2019-11-06 13:05:00', '2019-11-06 13:25:00'),
('C', '2019-11-06 13:10:00', '2019-11-06 13:30:00'),
('C', '2019-11-06 13:15:00', '2019-11-06 13:35:00'),
('C', '2019-11-06 13:20:00', '2019-11-06 13:40:00')
) T(IdObject, StartDate, EndDate)
DECLARE @dateFrom_old datetime;
DECLARE @dateTo_old datetime;
DECLARE @object_old varchar(10);
DECLARE @dateFrom_new datetime;
DECLARE @dateTo_new datetime;
DECLARE @object_new varchar(10);
DECLARE @Planning_Proposal_Temp_Grouped AS TABLE(object varchar(10), dateFrom datetime2, dateTo datetime2)
DECLARE insertedDataCursor CURSOR
FOR SELECT *
FROM @Planning_Proposal_Temp
ORDER BY Object, dateFrom
OPEN insertedDataCursor
FETCH NEXT FROM insertedDataCursor INTO @object_new,
@dateFrom_new,
@dateTo_new
WHILE @@FETCH_STATUS = 0
BEGIN
IF @dateFrom_old IS NOT NULL AND
@dateTo_old IS NOT NULL AND
@object_old IS NOT NULL
BEGIN
IF ((@object_old <> @object_new) OR (@dateFrom_new >= @dateTo_old))
BEGIN
INSERT INTO @Planning_Proposal_Temp_Grouped VALUES( @object_new,
@dateFrom_new,
@dateTo_new
)
SET @dateFrom_old = @dateFrom_new;
SET @dateTo_old = @dateTo_new
SET @object_old = @object_new
END
END
ELSE
BEGIN
INSERT INTO @Planning_Proposal_Temp_Grouped VALUES( @object_new,
@dateFrom_new,
@dateTo_new
)
SET @dateFrom_old = @dateFrom_new;
SET @dateTo_old = @dateTo_new
SET @object_old = @object_new
END
FETCH NEXT FROM insertedDataCursor INTO @object_new, @dateFrom_new, @dateTo_new
END
CLOSE insertedDataCursor
DEALLOCATE insertedDataCursor
SELECT * FROM @Planning_Proposal_Temp_Grouped |
Partager