0

Microsoft Access 2000 を使用していますが、

このクエリは、「=」条件を使用するとフィルタリングされますが、「<>」を使用するとフィルタリングされません。何が問題なのですか?

SELECT tblRevRelLog_Detail.RevRelTrackingNumber, tblRevRelLog_Detail.PartNumber, tblRevRelLog_Detail.ChangeLevel, tblRevRelLog_Detail.Version, tblRevRelLog_Detail.JobPnType, tblRevRelLog_Detail.EdsName, tblRevRelLog_Detail.FmeaText1, tblRevRelLog_Detail.FmeaText2, tblRevRelLog_Detail.LasdtEvent, tblRevRelLog_Detail.DetailerNamePerPartNumber, tblRevRelLog_Detail.DetailerCompanyPerPartNumber
FROM tblRevRelLog_Detail LEFT JOIN tblEventLog ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber
WHERE (((tblEventLog.EventTypeSelected)<> 'Pn REMOVED from Wrapper'));
4

2 に答える 2

0

Maybe the column has null values? SQL (and hence, I suppose Access) uses three valued logic. There is true, false, and unknown. and NUll values are assumed unknown. So

WHERE col = 'value'

returns all rows where col is not null and has the value 'value'

WHERE col <> 'value'

returns all rows where col is not null and the value of col is not 'value'

WHERE col is null

returns all rows where col is null.

To return the rows that do not fulfill col = 'value', you will have to use

WHERE col is null OR col <> 'value'
于 2010-08-19T17:10:10.630 に答える
0

試してみませんか:

SELECT td.RevRelTrackingNumber,
       td.PartNumber,
       td.ChangeLevel,
       td.Version,
       td.JobPnType,
       td.EdsName,
       td.FmeaText1,
       td.FmeaText2,
       td.LasdtEvent,
       td.DetailerNamePerPartNumber,
       td.DetailerCompanyPerPartNumber
FROM   tblRevRelLog_Detail td
LEFT JOIN tblEventLog te ON td.PartNumber = te.PartNumber
WHERE NOT(((te.EventTypeSelected) = 'Pn REMOVED from Wrapper'));

アクセスする人はあまりいませんが、それはあなたが望むものを達成すると信じています.

于 2010-08-19T17:10:28.530 に答える