以下是公司表,我需要根据 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/