我的應用程序將單行數據分割成不同的行塊,這些塊總是按照startdate的排序順序排列。合併sql行組
其中rowpart = 0是開始,rowpart = 2總是結束 rowpart = 1是中間部分,可以重複n次。
我需要在這樣的形式返回行像rowpart = 0的開始日期和rowpart = 2的結束日期(如果存在的話,否則返回rowpart結束日期)
- Rowpart = 0是新行塊的開始
- Rowpart = 2總是大塊
結塊可以在不同的日期被傳播的端部。
+-----+-------------------------+-------------------------+----------+
| Id | startdate | enddate | rowpart |
+-----+-------------------------+-------------------------+----------+
| 100 | 2016-11-30 00:00:00.000 | 2016-11-30 01:00:00.000 | 0 |
| 100 | 2016-11-30 02:00:00.000 | 2016-11-30 03:00:00.000 | 1 |
| 100 | 2016-11-30 10:00:00.000 | 2016-12-01 00:00:00.000 | 0 |
| 100 | 2016-12-01 02:00:00.000 | 2016-12-01 02:30:00.000 | 1 |
| 100 | 2016-12-01 10:00:00.000 | 2016-12-01 10:30:00.000 | 1 |
| 100 | 2016-12-01 16:00:00.000 | 2016-12-01 16:30:00.000 | 2 |
| 101 | 2016-12-11 10:00:00.000 | 2016-12-11 10:30:00.000 | 0 |
+-----+-------------------------+-------------------------+----------+
所以上面的表格應返回:
+-----+-------------------------+-------------------------+
| Id | startdate | enddate |
+-----+-------------------------+-------------------------+
| 100 | 2016-11-30 00:00:00.000 | 2016-11-30 03:00:00.000 |
| 100 | 2016-12-30 10:00:00.000 | 2016-12-01 16:30:00.000 |
| 101 | 2016-12-11 10:00:00.000 | 2016-12-11 10:30:00.000 |
+-----+-------------------------+-------------------------+
任何幫助,將不勝感激
根據SO你應該回答一些問題你問的問題..如果它可以幫助你的任何答案..do upvote ..happy編碼 – mohan111
我沒有回覆下面發佈的答案,我仍然試圖解決這個。 –
哪個版本的SQL Server? – MatBailie