Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除Access中的SQL查询未按预期工作_Sql_Ms Access - Fatal编程技术网

删除Access中的SQL查询未按预期工作

删除Access中的SQL查询未按预期工作,sql,ms-access,Sql,Ms Access,我有一个表1(PR_NOTES),我试图删除表2(DW_ECC_SAP_EBAN)中未找到的所有记录。我已经尝试了几种方法,这段代码是我得到的最接近我想要的(至少没有显示错误): DELETE * FROM PR_NOTES WHERE NOT EXISTS (SELECT DW_ECC_SAP_EBAN.BANFN, DW_ECC_SAP_EBAN.EKGRP, DW_ECC_SAP_EBAN.FRGZU, DW_ECC_SAP_EBAN.MENGE, DW_ECC_SAP_EBAN

我有一个表1(PR_NOTES),我试图删除表2(DW_ECC_SAP_EBAN)中未找到的所有记录。我已经尝试了几种方法,这段代码是我得到的最接近我想要的(至少没有显示错误):

DELETE *
FROM PR_NOTES
WHERE NOT EXISTS (SELECT 
DW_ECC_SAP_EBAN.BANFN, 
DW_ECC_SAP_EBAN.EKGRP, 
DW_ECC_SAP_EBAN.FRGZU, 
DW_ECC_SAP_EBAN.MENGE, 
DW_ECC_SAP_EBAN.BSMNG, 
DW_ECC_SAP_EBAN.LOEKZ, 
DW_ECC_SAP_EBAN.EBAKZ, 
DW_ECC_SAP_EBAN.PSTYP

FROM (DW_ECC_SAP_EBAN 
LEFT JOIN PR_NOTES
ON DW_ECC_SAP_EBAN.BANFN = PR_NOTES.BANFN));
为了测试这段代码,我创建了一个我知道在表2中找不到的假记录:

问题在于,从未删除任何记录:


事先谢谢你的帮助。

我会这样做的

DELETE FROM PR_NOTES
WHERE PR_NOTES.BANFN NOT IN (SELECT DW_ECC_SAP_EBAN.BANFN FROM DW_ECC_SAP_EBAN)

我正在从
DW_ECC_SAP_EBAN
中选择所有
BANFN
,并告诉
PR_NOTES
删除不在列表中的记录。因此,如果
PR\u NOTES.BANFN
不在
DW\u ECC\u SAP\u EBAN.BANFN
中,那么它将从
PR\u NOTES

错误括号中删除<代码>来自(DW_ECC_SAP_EBAN LEFT JOIN PR_NOTES。从DW_ECC_SAP_EBAN LEFT JOIN PR_NOTES ON DW_ECC_SAP_EBAN.BANFN=PR_NOTES.BANFN上的DW_ECC_SAP_EBAN LEFT JOIN PR_NOTES)取出,不幸的是没有什么区别。不应该有区别;-)这个查询我得到了一个错误“'AggregateType'不是有效的名称。请确保它不包含无效字符或标点符号,并且不太长”。我正在使用Access SQL.NVM,它可以工作。我从头开始创建了一个新查询。Access出于某种原因在后台保留某种逻辑,如果您碰巧修改了查询,它会弄乱查询。。。