根据同一个表中的列值计算日期差异

时间:2013-05-16 19:07:25

标签: sql sql-server-2008

我有以下表结构,包括ID,状态和日期

20130323000004  Final       3/23/2013
20130323000004  Final       3/25/2013
20130323000004  Final       3/26/2013
20130323000004  Needs Review    4/5/2013
20130323000004  Final       4/10/2013
20130323000004  Final       5/1/2013

我需要像

这样的结果
20130323000004  Final       3/23/2013     1
20130323000004  Final       3/25/2013     2
20130323000004  Final       3/26/2013     3
20130323000004  Needs Review    4/5/2013      1
20130323000004  Final       4/10/2013     1
20130323000004  Final       5/1/2013      21

其中最后一列是基于州列的两条记录之间的差异。

我尝试使用max和min进行自我加入,但无法获得正确的计数。你能帮我计算一下SQL中的总和吗?

由于

香卡。

2 个答案:

答案 0 :(得分:0)

尝试一下,我很确定这就是你要找的东西

SELECT [ID]
  ,[State]
  ,[Date]
  ,DATEDIFF(DAY, (SELECT MIN([Date]) FROM [tableName] where [State] = a.[State]), [Date])
FROM [tableName] a

答案 1 :(得分:0)

/WEB-INF/classes