0
我試圖生成日期範圍序列,如果排序中斷,則將日期放在第二行。按日期分組排序
fldDate TotalNo
2015-04-01 10
2015-04-02 10
2015-04-03 10
2015-04-04 10
2015-04-05 10
2015-04-06 10
2015-04-07 10
2015-04-08 10
2015-04-09 12
2015-04-10 12
2015-04-11 12
2015-04-12 12
2015-04-20 12
2015-04-21 12
2015-04-22 12
2015-04-23 12
2015-04-24 12
2015-04-25 12
我真的難倒
我想這個表作爲
StartDate EndDate TotalNo
2015-04-01 2015-04-08 10
2015-04-09 2015-04-12 12
2015-04-20 2015-04-25 12
意味着要麼日期範圍斷裂或TotalNo改變應該創建一個新的行。
我已經做到了,但它不是完全的工作 我做喜歡
SELECT MIN(fldDate) AS StartDate,
MAX(fldDate) AS EndDate,
TotalNo
FROM dbo.tbl1
GROUP BY TotalNo
ORDER BY fldDate
它會創建一個像
StartDate EndDate TotalNo
2015-04-01 2015-04-08 10
2015-04-09 2015-04-25 12
本文很好地解釋了這種技術。 http://www.sqlservercentral.com/articles/T-SQL/71550/ – 2015-04-06 13:42:54
您可以參考以下解決方案的任何差距[microsoft technet](https://technet.microsoft.com/en-us/library/ aa175780%28v = sql.80%29.aspx) [sqlmag](http://sqlmag.com/sql-server-2012/solving-gaps-and-islands-enhanced-window-functions) [simple-talk ](https://www.simple-talk.com/sql/t-sql-programming/the-sql-of-gaps-and-islands-in-sequences/) – ughai 2015-04-06 13:52:04