У меня есть простой SQL-запрос так:LINQ к SQL объединить даты в группы
SELECT dt AS 'startDate'
, dt AS 'endDate'
FROM
WorkCalendar
WHERE
dt BETWEEN dateadd(yy, datediff(yy, 0, getdate()), 0) AND dateadd(MILLISECOND, -3, dateadd(YEAR, datediff(YEAR, 0, getdate()) + 1, 0))
AND isWorkDay = 0
Это возвращает все даты из моей таблицы, содержащие дни освобождения от работы в текущем году.
Это пример вывода:
startDate endDate
2012-01-01 00:00:00 2012-01-01 00:00:00
2012-01-06 00:00:00 2012-01-06 00:00:00
2012-01-07 00:00:00 2012-01-07 00:00:00
2012-01-08 00:00:00 2012-01-08 00:00:00
2012-01-14 00:00:00 2012-01-14 00:00:00
2012-01-15 00:00:00 2012-01-15 00:00:00
2012-01-21 00:00:00 2012-01-21 00:00:00
2012-01-22 00:00:00 2012-01-22 00:00:00
То, что я хотел бы сделать, это группа около дат, как так:
startDate endDate
2012-01-01 00:00:00 2012-01-01 00:00:00
2012-01-06 00:00:00 2012-01-08 00:00:00
2012-01-14 00:00:00 2012-01-15 00:00:00
2012-01-21 00:00:00 2012-01-22 00:00:00
Если у меня есть 2 или более дней, которые один за другим I хотели бы присоединиться к ним в группы.
Я хотел бы это сделать с помощью LINQ к SQL, как это будет проще для меня, чтобы использовать в веб-сервиса, но простой SQL будет делать трюк :)
Что уже пробовали? – bluevector
Сейчас я использую первую часть, но я попытался построить рекурсивный запрос, но я убил мой сервер, делающий объединения, где endDate + 1 = startDate:/ – Misiu
Не могли бы вы показать нам запрос LINQ to SQL Вы уже писали? – bluevector