如何更新日期范围内的表格

时间:2014-02-03 07:54:57

标签: sql tsql sql-server-2008-r2

在sql server 2008 r2上工作。想要加入table = ValueTable 和table = DateRangeTable 。两个表数据就像图片一样。它们之间没有很强的关系,需要更新 ValueTable DateRangeTable 列的列 StartDate EndDate

enter image description here

如果有任何疑问请询问,任何类型的建议都是可以接受的,谢谢你提前。

4 个答案:

答案 0 :(得分:0)

您可以使用update...select查询,如下所示

update ValueTable
set ValueTable.incRange = drt.incRange
from DateRangeTable drt 
where ValueTable.BillDate >= drt.StartDate and ValueTable.BillDate <= drt.EndDate

答案 1 :(得分:0)

Select * from DateRangeTable inner join ValueTable on 
MONTH(BillDate)=DateRangeTable.MonthNumber

答案 2 :(得分:0)

试试这个并告诉我你的评论/结果

UPDATE ValueTable SET IncRange=DRT.IncRange
FROM ValueTable VT INNER JOIN DaatRangeTable DRT ON VT.BillDate >= DRT.StartDate AND VT.BillDate <=DRT.EndDate

答案 3 :(得分:0)

您也可以使用BETWEEN子句。

UPDATE ValueTable
SET    ValueTable.incRange = DateRangeTable.incRange
FROM   ValueTable, DateRangeTable 
WHERE  ValueTable.BillDate BETWEEN DateRangeTable.StartDate AND ValueTable.BillDate