0

我有一个访问数据库,该数据库当前正在删除在单独的表 CPExcl(在 CP 列内)中找到字段 CP 的所有行。但是,我想更改它,以便它仅在它与 CPExcl 表匹配并且在 2012 年 9 月 5 日之前的情况下删除它。我编写了以下代码,但没有任何结果:

[CP] not in (select distinct [CP] from CPExcl) 
AND ([CP] in (select distinct [CP] from CPExcl) 
AND LUD >9/5/2012);

任何帮助将不胜感激!

乔什

4

1 回答 1

0

“但是,我想更改它,因此它仅在它与 CPExcl 表匹配且在 2012 年 9 月 5 日之前的情况删除它”

在你删除之前,先尝试选择它:

([CP] not in (select distinct [CP] from CPExcl) 
AND LUD < #9/5/2012#) -- before 9/5/2012. so change it to less than
OR ([CP] in (select distinct [CP] from CPExcl) 

IIRC,访问的日期类型使用井号(#)。所以把这个 9/5/2012 改成 #9/5/2012#;否则将变为整数

并且没有必要使用 DISTINCT。IN/NOT IN 自动对相关查询应用 distinct。

([CP] not in (select [CP] from CPExcl) 
AND LUD < #9/5/2012#) -- before 9/5/2012. so change it to less than
OR ([CP] in (select [CP] from CPExcl) 

编辑

“'我想要所有 CP 不在 CPExcl 的 CP 列中的东西',但是我也想要那些 'CP 在 CPExcl 的 CP 列中并且 LUD 是 2012 年 5 月 9 日的那些”

[CP] not in (select [CP] from CPExcl) 
OR
(
    [CP] in (select [CP] from CPExcl) 
    AND LUD < #9/5/2012# -- before 9/5/2012. so change it to less than
)

你可以把它短路到这个:

[CP] not in (select [CP] from CPExcl) 
OR
LUD < #9/5/2012# -- before 9/5/2012. so change it to less than

作为预防措施,在删除之前选择,检查逻辑是否适合问题。快乐编码!ツ</p>

于 2012-05-21T10:53:36.967 回答