【发布时间】:2015-04-06 13:39:17
【问题描述】:
如果排序中断,我正在尝试生成日期范围序列并将日期放在第二行。
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 change 它应该创建一个新行。
我已经完成了,但它没有完全工作 我正在这样做
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
【问题讨论】:
-
这篇文章很好地解释了这种技术。 sqlservercentral.com/articles/T-SQL/71550
-
您可以参考以下任何解决间隙的方法microsoft technetsqlmagsimple-talk
标签: sql sql-server group-by date-range