【问题标题】:MS Access Update a table from another tableMS Access 从另一个表更新一个表
【发布时间】:2011-03-23 05:22:43
【问题描述】:

我有两张桌子

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 = Min(Table2.Date) 那么 我想将 Table1.State 更改为 Table2.New_State,其中使用的行具有 Max Date where Table2.Date >= Table1.Date

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

【问题讨论】:

    标签: ms-access


    【解决方案1】:

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

    也就是说,您必须首先对表 2 进行查询以找出最小值和最大值。类似的东西:

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

    将该查询保存到 qLimits,并在其中使用 ID 上的 qLimits 加入 Table1 进行更新查询,并为 Table1![myDate] = 介于 qLimits!Start 和 qLimits!Finish 之间设置过滤器

    应该可以的。

    【讨论】:

    • 也许,也许不是——如果你加入最小/最大查询,结果很可能是不可更新的。完全取决于上下文...
    猜你喜欢
    • 2023-03-22
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    相关资源
    最近更新 更多