我在 SQL Server 中遇到递归查询问题。
假设我有 2 个表:
Holiday
:此表存储所有假期(holidayDate
非工作日)Invoice
:此表存储下一个付款日期(nextPaymentDate
)
如果nextPaymentDate
在 holidayDate
假期表上,那么我需要更新它:
nextPaymentDate = nextPaymentDate + 1 day
这一步需要处理,直到nextPaymentDate
不再存在holidayDate
。
请参阅下面的示例数据示例:
Holiday
桌子:
HolidyaID HolidayDate
-----------------------------
1 2012-01-02
2 2012-01-03
3 2012-01-04
4 2012-01-08
5 2012-01-12
6 2012-01-13
7 2012-01-20
8 2012-01-21
9 2012-01-22
10 2012-01-23
11 2012-01-29
12 2012-01-30
Invoice
桌子
InvoiceID NextPaymentDate
------------------------------
1 2012-01-01
2 2012-01-02
3 2012-01-09
4 2012-01-20
运行此查询后,我想像这样查看Invoice
表中的数据
InvoiceID NextPaymentDate
-------------------------------
1 2012-01-01
2 2012-01-05
3 2012-01-09
4 2012-01-24
如何创建 SQL 查询来输出此结果?
您可以在http://sqlfiddle.com/#!6/de346/3测试此查询
谢谢你!