2014-10-04 28 views
0

访问我的结构像这样的表:复制除非在一个表

tblCase 
+--------+---------------------+------------+ 
| CaseID | Reference   | ListID  | 
+--------+---------------------+------------+ 
| 1  | A     | 101  | 
+--------+---------------------+------------+ 
| 2  | B     | 101  | 
+--------+---------------------+------------+ 
| 3  | A     | 102  | 
+--------+---------------------+------------+ 
| 4  | B     | 102  | 
+--------+---------------------+------------+ 
| 5  | C     | 102  | 
+--------+---------------------+------------+ 

我试图写一个返回只有在ListID X,但不是ListIDŸ引用查询。

因此,例如,与该数据,我比较列表ID 101和列表ID 102,并且仅返回参考C,因为参考C被发现,只有在ListID 102

喜欢的东西

SELECT Reference FROM tblCase WHERE ListID = 102 
EXCEPT 
SELECT Reference FROM tblCase WHERE ListID = 101 

但在Access中不起作用,我不确定如何在这种情况下复制它。我发现了其他类似的问题,但未能成功解决我的问题。

谢谢

编辑:解决使用SylvainL的建议。感谢您的帮助:)

回答

2

一个简单的方法是使用Not Exists()语句;像这样:

Select Reference from MyTable t1 
Where ListId = 102 and 
    Not Exists (Select * from MyTable t2 where t2.Reference = t1.Reference and T2.ListId = 101) 

使用一个左从MyTable加入自己并寻找空值是另一种解决方案。

相关问题