MS Access从另一个表更新表

时间:2011-03-22 19:24:43

标签: ms-access

我有两张桌子

Table 1
Date     ID      State
3/22     1       state 1
3/21     2       state 2
3/20     3       state 1


Table 2
Date     ID      New_State
3/21     1       state 3
3/20     2       state 3

表1成为

Table 1
Date      ID      State
3/22      1       state 1
3/21      2       state 3
3/20      3       state 1

这就是我想要做的事情:

如果Table1.ID = Table2.ID和Table1.Date< = Max(Table2.Date)和Table1.Date> = Min(Table2.Date)那么 我想将Table1.State更改为Table2.New_State,其中使用的行具有最大日期,其中Table2.Date> = Table1.Date

我该怎么做?我一直在尝试使用UPDATE查询。

1 个答案:

答案 0 :(得分:1)

第一件事,“日期”不应该被用作字段名称,它是一个保留字。你在寻找麻烦。我甚至不想写下来,所以我会改用myDate 第二件事,为什么要使用更新查询? 90%的时间他们没有必要。三思而后行。

那就是说,你必须首先在表2上查询Min和Max。类似的东西:

SELECT ID, Min([myDate]) as Start, Max([myDate]) as Finish FROM t2 GROUP BY id

将该查询保存到qLimits,并进行更新查询,其中您将Table1与IDL上的qLimits连接,并为Table1设置过滤器![myDate] =在qLimits之间!开始和qLimits!完成

应该这样做。