我有表具有以下的列:分組通過連續的日期在SQL Server
[name_of_pos] varchar,
[date_from] datetime,
[date_to] datetime
下面是我的樣本數據:
name_of_pos date_from date_to
----------------------------------------------------------------
Asystent 2015-08-26 08:57:49.000 2015-09-04 08:57:49.000
Biuro 2015-09-01 08:53:32.000 2015-09-01 08:53:32.000
Biuro 2015-09-02 09:00:41.000 2015-09-02 09:00:41.000
Biuro 2015-09-03 11:46:03.000 2015-09-03 11:46:03.000
Biuro 2015-09-10 09:02:11.000 2015-09-15 09:02:11.000
Koordynator 2015-09-01 09:04:06.000 2015-09-01 09:04:06.000
Projektant 2015-08-31 08:59:46.000 2015-09-01 08:59:46.000
Projektant 2015-09-02 08:00:54.000 2015-09-02 08:00:54.000
Projektant 2015-09-14 12:34:50.000 2015-09-14 12:34:50.000
我想要回是日期範圍(分date_from
到最大date_to
),但每個name_of_pos
只有日期值是連續的(時間部分不重要,結果可以忽略)。
所需的輸出將是:
name_of_pos date_from date_to
------------------------------------
Asystent 2015-08-26 2015-09-04
Biuro 2015-09-01 2015-09-03
Biuro 2015-09-10 2015-09-15
Koordynator 2015-09-01 2015-09-01
Projektant 2015-08-31 2015-09-02
Projektant 2015-09-14 2015-09-14
我用類似這樣的問題的東西嘗試瞭解決方案:
How do I group on continuous ranges
但沒有運氣,因爲我有兩個datetime列。
您確定您提供的源數據是正確的嗎?如果是這樣,你能解釋一下你是如何獲得'Biuro 2015-09-01 08:53:32。2015-09-03 11:46:3。此記錄的源數據中似乎沒有連續的時間間隔。 – GolfWolf
日期部分必須是連續的,時間部分不重要(可以忽略),所以biuro的三條記錄(其中date_from爲2015-09-01,2015-09-02和2015-09-03)應該返回爲一個row for name_of_pos ='Biuro'with values date_from ='2015-09-01'and date_to ='2015-09-03' – Bart