Sql 更新查询设置值的select查询结果不起作用
我在MS Access中有一个更新查询;对于更新查询的设置值,我使用了一个select查询,我确信该查询的结果是唯一的,但我得到了一个错误Sql 更新查询设置值的select查询结果不起作用,sql,ms-access,Sql,Ms Access,我在MS Access中有一个更新查询;对于更新查询的设置值,我使用了一个select查询,我确信该查询的结果是唯一的,但我得到了一个错误 SET asbuilt_list.commented_sheet = Nz((SELECT [pages] FROM [tbl_transmittal_discipline_poi_max] AS T1 WHERE (T1.[owner document number] = asbuilt_list.
SET asbuilt_list.commented_sheet =
Nz((SELECT [pages]
FROM [tbl_transmittal_discipline_poi_max] AS T1
WHERE (T1.[owner document number] = asbuilt_list.[doc])
AND (T1.poi = "cmn" )), 0)
这是我得到的错误:
操作必须使用可更新的查询
我的更新查询如下:
UPDATE asbuilt_list
INNER JOIN tbl_transmittal_discipline_poi_max ON asbuilt_list.doc = tbl_transmittal_discipline_poi_max.[owner document number]
SET asbuilt_list.commented_sheet =
Nz((SELECT [pages]
FROM [tbl_transmittal_discipline_poi_max] AS T1
WHERE (T1.[owner document number] = asbuilt_list.[doc])
AND (T1.poi = "cmn" )), 0)
WHERE
(((asbuilt_list.description ) NOT LIKE "*isometric*")
AND ((asbuilt_list.doc) NOT LIKE "*ls*")
AND ((asbuilt_list.discipline) <> "ppd"))
OR ((( sbuilt_list.description) IS NULL)
AND ((asbuilt_list.discipline) IS NULL));
更新竣工清单
竣工清单上的内部连接tbl\U传送单\U规程\U poi\U max.doc=tbl\U传送单\U规程\U poi\U max。[业主文件编号]
设置已生成的\u列表。已注释的\u表=
新西兰((选择[页面]
从[tbl\U传输\U规程\U poi\U max]开始,作为T1
其中(T1.【业主文件编号】=竣工清单【文件】)
和(T1.poi=“cmn”)、0)
哪里
(((asbuild_list.description)与“*等轴测*”不同)
和((asbuild_list.doc)不象“*ls*”)
和((竣工清单、专业)“ppd”))
或(((sbuilt_list.description)为空)
和((ASBUILD_list.PRICTION)为空);
需要查看您的架构。当您执行内部联接时,是否会获得唯一标识ASBUILD_列表中记录的记录?如果不是,则查询不可更新。1)WHERE子句中列出了一个表sbuilt\u list
。这是打字错误,缺少开头的a
?2) 为什么要加入tbl\u transmitation\u规程\u poi\u max
并分别链接嵌入子查询中的表?我以前使用过子查询“技巧”来避免同样的错误,但我真的认为没有必要同时做这两件事。主查询中不依赖于tbl\u transmitation\u规程\u poi\u max
,因此,如果联接没有生成唯一的asbuild\u list
行,则它似乎是多余的,可能会导致错误。