如果更新数据满足另一个中指定的条件,则更新数据

时间:2015-08-18 16:35:39

标签: sql ms-access ms-access-2007

这完全在Access 2007中。我有一个包含三列的表(付费期,开始日期,结束日期)。另一个表看起来像(日期,支付期,其他数据)。我把它留作其他数据,因为它与问题无关。我无法弄清楚如何更新查询以根据它所属的日期范围更新第二个表中的付款期限。所以如果第一个表看起来像这样:

|1| March 17, 2015| April 2, 2015 |
|2| April 3, 2015 | April 17, 2015|

然后,第二个表中具有日期范围内日期的所有记录都应更新为具有相应的支付期。因此,如果在第二个表中有一个日期为2015年3月27日的记录,则同一记录的支付期应更新为“1”我一直在寻找并且没有找到任何东西。

2 个答案:

答案 0 :(得分:1)

这是你在找什么?

UPDATE TableA
INNER JOIN TableB ON TableA.[Date] BETWEEN [StartDate]
        AND [EndDate]
SET TableA.PayPeriod = TableB.PayPeriod;

答案 1 :(得分:1)

我将示例数据存储在名为 pay_periods second_table 的表中。然后,此Access 2010查询会根据您的请求更新 second_table。[付款期] 。它应该在Access 2007中使用相同的功能。

UPDATE second_table AS s, pay_periods AS pp
SET s.[Pay Period] = [pp].[Pay Period]
WHERE s.Date Between [pp].[Start Date] And [pp].[End Date];