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

时间:2017-05-18 15:09:55

标签: sql ms-access

我有一个table1(PR_NOTES),我正在尝试删除table2上找不到的所有记录(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));

为了测试这段代码,我创建了一个我知道在table2中找不到的假记录: enter image description here

问题是,没有记录被删除: enter image description here

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我这样做的方式是这样的。

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

我从BANFN中选择了所有DW_ECC_SAP_EBAN,我告诉PR_NOTES删除列表中没有的记录。因此,如果PR_NOTES.BANFN不在DW_ECC_SAP_EBAN.BANFN中,那么它将从PR_NOTES

中删除
相关问题