因此,我一直在尝试过份和分区,但没有成功。
下面是我所拥有的:2列;1是序列号,将有多个具有相同序列号的条目。第二个是约会。
我想做的是根据序列号计算两个日期之间的天数。我可以很容易地完成datediff,我不知道如何只计算特定序列号的日期之间的差异。
例如:序列号1234的日期为1/1/2016,下面的记录为序列号1234,日期为12/30/2015,因此差异为2天,下面的记录序列号为1234,日期为12/27/2015,因此差异为3天,但下面的记录的序列号为4321,日期为12/25/2015:减法需要停止,因为序列号不同,重新查找相同的4321序列号。
任何帮助都是非常感谢的。
发布于 2016-10-10 18:19:11
你的问题可以更好地格式化(更多的数据,更少的优点)
据我所知,这有帮助吗?
Declare @YourTable table (Serial int,SomeDate date)
Insert Into @YourTable values
(1234,'2016-01-01'),
(1234,'2015-12-30'),
(1234,'2015-12-27'),
(4321,'2015-12-25')
Select A.*
,NbrOfDays = DateDiff(DD,Lag(SomeDate,1,SomeDate) over (Partition By Serial Order By SomeDate),SomeDate)
From @YourTable A
Order By Serial,SomeDate Desc返回
Serial SomeDate NbrOfDays
1234 2016-01-01 2
1234 2015-12-30 3
1234 2015-12-27 0
4321 2015-12-25 0发布于 2016-10-10 17:30:18
SELECT serial_number,
DATEDIFF( date,
LEAD( date, 1 ) OVER ( PARTITION BY serial_number ORDER BY
date DESC )
) AS count_days
FROM table; https://stackoverflow.com/questions/39963584
复制相似问题