我有两张桌子
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查询。
答案 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!完成
应该这样做。