两个连续日期之间的差异

两个连续日期之间的差异

以下是公司表,我需要根据 companyId 和 rownum 获取在天数中的两个连续日期之间的差异

company_id  date    row_num
101         2017-01-12              1
101         2017-02-22              2
118         2017-03-23              1
119         2017-04-18              1
123         2017-01-12              1
123         2017-01-15              2
123         2017-01-22              3
501         2017-01-30              1
501         2017-02-02              2

预期输出:
company_id  date    days
101         2017-01-12              0
101         2017-02-22              41
118         2017-03-23              0
119         2017-04-18              0
123         2017-01-12              0
123         2017-01-15              3
123         2017-01-22              7
501         2017-01-30              0
501         2017-02-02              3

最佳答案

这可以简单地使用自联接完成,而无需使用任何分析函数,因为 row_num 已在表中可用。

SELECT  a.company_id,
        a.billing_failure_date,
        a.row_num,
        ISNULL(DATEDIFF (d, b.billing_failure_date, a.billing_failure_date), 0) AS Days
FROM    TableName a
        LEFT JOIN TableName b
            ON a.company_id = b.company_id
                AND a.row_num = b.row_num + 1

这是一个 Demo

关于sql - sql server中两个连续日期之间的差异(以天为单位),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48921395/

10-09 00:47