删除Access中的SQL查询未按预期工作
我有一个表1(PR_NOTES),我试图删除表2(DW_ECC_SAP_EBAN)中未找到的所有记录。我已经尝试了几种方法,这段代码是我得到的最接近我想要的(至少没有显示错误):删除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
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出于某种原因在后台保留某种逻辑,如果您碰巧修改了查询,它会弄乱查询。。。