查找计数差异 - Microsoft Access& SQL

时间:2017-01-11 14:42:01

标签: sql database ms-access join

所以我有两个表,每个表都有几千条记录。只有两个字段 - ID和ID ID。

这些表应该有大约30个具有不同计数的ID。我试图通过运行查询来找出它们,以便计算出不匹配的数量。

ID|Count
A | 5
B | 12
C | 9

A | 5
B | 13
C | 9

在上面的例子中,我想只拉出记录B,所以我可以把它标记为不匹配。我不确定一个简单的方法。我尝试了外连接(Union All in Access),左右两个字段的连接。没有什么工作。

2 个答案:

答案 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
);