【发布时间】:2010-11-16 18:16:47
【问题描述】:
谁能告诉我两列 SQL 中 NOT IN 条件的确切语法。
这是我用 VBA 编写的查询。
strNewSql = "SELECT distinct(tblRevRelLog_Detail.PartNumber), tblRevRelLog_Detail.ChangeLevel, tblRevRelLog_Detail.ID FROM tblRevRelLog_Detail LEFT JOIN tblEventLog ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber"
strNewSql = strNewSql & " WHERE (tblEventLog.PartNumber) Not In(SELECT tblEventLog.PartNumber FROM tblEventLog WHERE tblEventLog.EventTypeSelected = 'pn REMOVED From Wrapper') AND tblEventLog.TrackingNumber = """ & tempTrackingNumber & """ AND tblEventLog.TrackingNumber = tblRevRelLog_Detail.RevRelTrackingNumber;"
我想改变这个子查询,它应该适用于两列的组合,如下所示:
strNewSql = "SELECT tblRevRelLog_Detail.PartNumber, tblRevRelLog_Detail.ChangeLevel, tblRevRelLog_Detail.ID FROM tblRevRelLog_Detail LEFT JOIN tblEventLog ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber"
strNewSql = strNewSql & " WHERE (((tblEventLog.PartNumber, tblEventLog.PartNumberChgLvl) Not In(SELECT tblEventLog.PartNumber,tblEventLog.PartNumberChgLvl FROM tblEventLog WHERE tblEventLog.EventTypeSelected = 'pn REMOVED From Wrapper') AND tblEventLog.TrackingNumber = """ & tempTrackingNumber & """ AND tblEventLog.TrackingNumber = tblRevRelLog_Detail.RevRelTrackingNumber);"
但这不起作用.....
【问题讨论】:
-
你需要什么,列组合在一起不起作用或数据不在任一列中?
-
两列是什么意思?
-
HLGEM,两列的组合..
-
了解您使用的 MS-Access 版本会有所帮助,因为这可能会影响答案。
-
我想不出任何版本的 Access 中的这种简单 SQL 的单一版本差异,如果您在 A2003 或稍后并打开 SQL 92 模式,但我什至不认为这会有所作为(除非您使用的是 SQL 92 关键字,但没有一个会突然出现在我身上)。简而言之,我真的不认为 Access 的版本有丝毫不同——这个查询中的所有内容一直都得到支持。