我有两个没有直接关系的表,比如...
表1
VoucherId | VoucherDate
-----------+-------------
V001 | 2014-12-09
V002 | 2016-01-10
表2
FinYearRef | FromDate | ToDate
-----------+------------+-----------
Y01 | 2014-07-01 | 2015-06-30
Y02 | 2015-07-01 | 2016-06-30
现在我向表 1 中添加了列FRef
我想按表 2 中的FinYearRef
更新该FRef
列,其中Table1.VoucherDate
介于 Table2.FromDate
和 Table2.ToDate
之间
使用 Join 进行更新:
UPDATE T1
SET T1.FRef = T2.FinYearRef
FROM TABLE1 T1
JOIN TABLE2 T2
ON T1.VoucherDate BETWEEN T2.FromDate AND T2.ToDate
请注意,这将使用 T2 中的最后一个匹配项更新 FRef。如果你想要第一个值,那么:
UPDATE TABLE1
SET T1.FRef =
(SELECT TOP 1 FinYearRef FROM TABLE2
WHERE TABLE1.VoucherDate BETWEEN T2.FromDate AND T2.ToDate)