【发布时间】:2017-07-24 05:03:27
【问题描述】:
我有两张表,下面是例子
Table1
KEY BEGIN_DATE TOTAL_RATE
1 1974-01-01 3
1 1981-01-01 3
1 1983-01-01 4
1 1985-07-01 4
1 1989-10-01 7
1 1990-07-01 10
1 1997-10-01 11
1 2008-04-01 13
表2
KEY END_DATE RATE_REDUCED
1 1989-09-30 2
1 1997-09-31 4
如果键匹配,则从表 2 中我们需要从表 1 中减少 TOTALRATE 在表 2 中使用 RATEREDUCED,其中 BEGINDATE > ENDDATE 并且应该发生 直到表 2 ENDDATE 结束
预期结果/表 1 更新:
结果
KEY BEGIN_DATE NEW_RATE
1 1974-01-01 3
1 1981-01-01 3
1 1983-01-01 4
1 1985-07-01 4
1 1989-10-01 7 - 2 = 5 (Date is Greater than 1989-09-30)
1 1990-07-01 10 - 2 = 8 (Date is Greater than 1989-09-30)
1 1997-10-01 11 - 2 - 4 = 5 (Date is Greater than two dates)
1 2008-04-01 13 - 2 - 4 = 7 (Date is Greater than two dates)
我在表二和表一中有很多键。 是否可以加入更新
提前致谢
【问题讨论】:
标签: sql sql-server sql-server-2012 sql-update outer-join