【发布时间】:2020-01-06 20:30:08
【问题描述】:
我有 2 张桌子:
T1:关于某些交易的总体信息
T2:按项目细分交易及其所在的状态(当前“打开”与“关闭”)
我必须运行一个查询,根据 T2 中的状态确定 T1 中交易的总体状态(即,如果有 2 个行项目,1 是“打开”,另一个是“关闭” " 总体状态是"打开",我通过iif 执行此操作:打开-1 关闭-0,按ID 求和,然后如果> 0,则为"打开",否则为"关闭")
我想运行一个更新查询来更新状态列(由 ID 链接)。到目前为止,我已经尝试过:
UPDATE [T1] INNER JOIN [Query1] ON [Query1].[ID] = [T1].[ID]
SET [Query1].[Overall Status] = [T1].[Overall Status];`
Query1 定义为:
SELECT [T1].[ID], IIf((Sum(IIf([T2].[Status]="Closed",0,1)))=0,"Closed","Open") AS [Overall Status]
FROM [T1] INNER JOIN [T2] ON [T1].[ID] = [T2].[ID]
GROUP BY [T1].[ID];
我总是得到错误
“操作必须使用可更新的查询”
不幸的是,这是在 MS Access 中完成的,但任何建议都会很棒!
【问题讨论】:
-
您是要更新
[Query1]输出中的值还是表[T1]中的列。目前这正在尝试(并且失败)做前者。 -
您好,我正在尝试更新表中的值。 @JNevill
-
查询 1 是
SELECT [T1].[ID], IIf((Sum(IIf([T2].[Status]="Closed",0,1)))=0,"Closed","Open") AS [Overall Status] FROM [T1] INNER JOIN [T2] ON [T1].[ID] = [T2].[ID] GROUP BY [T1].[ID];@LeeMac -
这能回答你的问题吗? Operation must use an updatable query