【发布时间】:2016-08-01 03:55:24
【问题描述】:
我的尝试:
UPDATE [DATA OUTPUT TABLE]
(
SELECT [DATA OUTPUT TABLE].[Journal Voucher ID], [DATA OUTPUT TABLE].[dBranch] AS Branch, [DATA OUTPUT TABLE].[dBranch] & " Shared Appropriation" AS [Shared Appropriation]
FROM [DATA OUTPUT TABLE]
WHERE [DATA OUTPUT TABLE].[Journal Voucher ID] In
(
SELECT [DATA OUTPUT TABLE].[Journal Voucher ID]
FROM [DATA OUTPUT TABLE]
GROUP BY [DATA OUTPUT TABLE].[Journal Voucher ID]
HAVING
(((First([DATA OUTPUT TABLE].dBranch)="Navy")
AND
(Last([DATA OUTPUT TABLE].dBranch)="USMC"))
OR
((First([DATA OUTPUT TABLE].dBranch)="USMC")
AND
(Last([DATA OUTPUT TABLE].dBranch)="Navy")))
)
;) AS SATable
SET [DATA OUTPUT TABLE].[Shared Appropriation] = SATable.[Shared Appropriation]
Where [DATA OUTPUT TABLE].[Journal Voucher ID] = SATable.[Journal Voucher ID], [DATA OUTPUT TABLE].[dBranch] = SATable.[Branch];
我的目标是使用我的查询中的 [dBranch] 字段和“共享拨款”的串联来更新 [数据输出表] 中的 [共享拨款] 列(有效):
SELECT [DATA OUTPUT TABLE].*
FROM [DATA OUTPUT TABLE]
WHERE ((([DATA OUTPUT TABLE].[Journal Voucher ID]) In (SELECT [DATA OUTPUT TABLE].[Journal Voucher ID]
FROM [DATA OUTPUT TABLE]
GROUP BY [DATA OUTPUT TABLE].[Journal Voucher ID]
HAVING (((First([DATA OUTPUT TABLE].dBranch))="Navy") AND ((Last([DATA OUTPUT TABLE].dBranch))="USMC")) OR (((First([DATA OUTPUT TABLE].dBranch))="USMC") AND ((Last([DATA OUTPUT TABLE].dBranch))="Navy"));)));
我的想法是为工作查询创建一个别名 SATable,并将其放入更新查询中。
【问题讨论】:
-
当您在
UPDATE [DATA OUTPUT TABLE]之后添加逗号时会发生什么情况,即UPDATE [DATA OUTPUT TABLE], (SELECT [DATA .....? -
您的尝试有什么问题 - 是语法错误 - 还是没有正确更新?
-
@cha 之后我得到“From Clause 中的语法错误”
-
@dbmitch(没有逗号/如已发布)我收到“更新语句中的语法错误”
-
第二个查询的目的是什么?与您的更新有何关联?
标签: sql ms-access sql-update subquery