寻找MISSING记录

时间:2009-03-26 18:20:08

标签: sql ms-access null crosstab

关于MS Access,我有点生疏,我希望有人可以帮助我......

我有一个列表,列出了每个商店,UPC扫描(购买)所有项目一个月的时间。我还有一组特殊的UPC,我想要数据。我想得到的是没有被扫描的物品。显然,没有扫描的项目不会显示在扫描项目列表中。

首先,我尝试进行交叉表查询...这很好,但我只想看到'0'值。理想情况下,我想将交叉表中的“0”值放入一个列出商店和UPC的简单表中。我也试过做一个不匹配的查询,但只返回UPC ....我需要知道它没有扫描到哪个商店....

我想我可能会对此有点不对劲。就像我说的,我多年没有使用Access了,如果我问一个简单易懂的问题,我道歉。

任何可以提供帮助的人?

提前谢谢!

5 个答案:

答案 0 :(得分:3)

我会用:

SELECT ul.upc FROM upc_list ul 
LEFT JOIN upc_scanned us
ON ul.upc = us.upc
WHERE us.upc Is Null

使用您的表格和字段:

SELECT [Master UPC List].UPC 
FROM [Master UPC List] LEFT JOIN [No Scans] 
ON [Master UPC List].UPC = [No Scans].UPC 
WHERE [No Scans].UPC Is Null; 

答案 1 :(得分:2)

我认为你正在寻找这样的东西。显然,您需要更改表名称和字段以匹配您的架构。

select UL.UPC from UPC_LIST UL where UL.UPC not in (
    select US.UPC from UPC_SCANNED US
)

答案 2 :(得分:0)

您能否让我们了解所涉及的表格? 如果您只有两个表,一个包含扫描的每个项目,哪个存储它被扫描,一个列出所有项目,那么您的不匹配查询返回的任何项目都不会在任何商店中扫描,这是您想要的吗?您似乎要求它告诉您哪个商店要扫描它:)

答案 3 :(得分:0)

要回答你的问题pipTheGeek,我正在寻找哪些UPC(如果有的话)不扫描哪些商店。

例如,如果有100家商店,并且Alpo Dog Food应该在每家商店都有售,我需要查看是否有任何商店在一个月的时间内没有销售任何Alpo Dog Food那些商店号码是什么。一旦我有了这些商店号码,我就可以进一步调查它为什么不卖。

答案 4 :(得分:0)

Remou -

你给我的编辑过的SQL:

SELECT [Master UPC List] .UPC FROM [Master UPC List] LEFT JOIN [No Scans] ON [Master UPC List] .UPC = [No Scans] .UPC 在哪里[没有扫描] .UPC是空的;

也会返回0条记录.....