所以我有两个表,每个表都有几千条记录。只有两个字段 - ID和ID ID。
这些表应该有大约30个具有不同计数的ID。我试图通过运行查询来找出它们,以便计算出不匹配的数量。
ID|Count
A | 5
B | 12
C | 9
A | 5
B | 13
C | 9
在上面的例子中,我想只拉出记录B,所以我可以把它标记为不匹配。我不确定一个简单的方法。我尝试了外连接(Union All in Access),左右两个字段的连接。没有什么工作。
答案 0 :(得分:2)
如果我理解了这个问题(你的表已经聚合并且两者中的ID都是PK),那应该非常简单。只需要一个WHERE
子句来返回每个ID不匹配的计数。
SELECT b.ID, b.[CountOfID]
FROM Table1 a
INNER JOIN Table2 b
ON a.ID = b.ID
WHERE a.[CountOfID] <> b.[CountOfID]
这假设第一个表中的任何现有ID也存在于第二个表中。
答案 1 :(得分:0)
您可以使用group by来获取具有不同计数的id(我将count列称为count_col,因为count是保留关键字)。
select id
from your_table
group by id
having count(distinct count_col) > 1;
如果要查找包含这些ID的所有行,可以使用IN
:
select *
from your_table
where id in (
select id
from your_table
group by id
having count(distinct count_col) > 1
);