表格中第一个和最后一个记录之间的天数之差由ref

时间:2015-02-25 17:38:36

标签: sql sql-server date

我有一个包含以下列的表:

协议参考:唯一参考,可以有多个属性协议

属性参考:所有协议都与属性对齐

开始日期:帐户的开始日期(协议参考)

结束日期:帐户的结束日期(协议参考)。

切换日期:与财产相关的静态日期(始终相同)

对于每个协议ref,我想计算之前在该属性中的协议的开始日期和结束日期之间的天数。如果在协议之前没有人在房产中,那么应该使用移交日期而不是上一个结束日期。

请帮忙

由于

的Si

2 个答案:

答案 0 :(得分:0)

将此添加到您的select语句中:

CASE WHEN [End Date] IS NOT NULL THEN DATEDIFF(day, [Start Date], [End Date] ELSE DATEDIFF (Day, [Start Date], [Handover Date]) END AS [New Column Name]

有关DATEDIFF()函数的更多信息:click here

答案 1 :(得分:0)

在黑暗中刺伤。您想知道+ s代表的天数。

--    Prev Agreement                Agreement
-- |Start----------End|+++++++|Start-----------End|

select
    datediff(
        dd,
        coalesce(
            (
                select max([End Date]) from T as t2
                where t2.[Property Ref] = t1.[Property Ref]
                    and t2.[End Date] < t1.[Start Date]
            ),
            t1.[Handover Date]
        ),
        t1.[Start Date]
    )
from T as t1