У меня возникли проблемы с отображением правильных данных из моей таблицы. Я тоже не совсем уверен, что искать. Я не уверен, что min (столбец) или max (столбец) помогут мне здесь. Посмотрим, смогу ли я объяснить свою проблему.
Моя таблица содержит эти данные:
> Code (nvarchar) | DateFrom (datetime) | DateTo (datetime)
> =========================================================
> 3006 | 2014-06-18 07:00:00 | 2014-06-18 08:00:00
> 3006 | 2014-06-18 09:00:00 | 2014-06-18 22:00:00
> 1006 | 2014-06-18 07:00:00 | 2014-06-18 09:00:00
> 1006 | 2014-06-18 08:00:00 | 2014-06-18 08:30:00
> 1006 | 2014-06-18 08:10:00 | 2014-06-18 18:00:00
Я собираюсь представить это с точки зрения. Он будет сгруппирован по коду.
Я хочу, чтобы этот вывод:
> Code | DateFrom | DateTo
> =========================================================
> 3006 | 2014-06-08 07:00:00 | 2014-06-18 08:00:00
> 3006 | 2014-06-18 09:00:00 | 2014-06-18 22:00:00
> 1006 | 2014-06-18 07:00:00 | 2014-06-18 18:00:00
Как вы видите, есть ли пробелы между DateTo и DateFrom, я хочу, чтобы они были представлены в виде двух строк. Но если следующий «DateFrom» с тем же кодом начинается до (или в то же время), что и DateTo, я хочу, чтобы вместо этого отображался «DateTo».
Я не понимаю, как я мог бы использовать функцию max() или min() в этом случае. Из-за пробелов, которые могут быть во временных интервалах.
У вас есть какие-нибудь идеи?
Я использую MS SQL 2012
Заранее спасибо!
редактировать: как прокомментировано. Острова могут быть моим решением?
gaps-and-islands
для определения прогонов/пробелов в данных. - person Dave Cullum   schedule 18.06.2014