2017-01-11 57 views
-1

因此,我有兩個表,每個表都有幾千條記錄。只有兩個字段 - ID的ID和計數。查找計數差異 - Microsoft Access和SQL

表中應該有大約30個具有不同計數的ID。我試圖找到他們通過運行一個查詢來拉出計數不匹配。

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

A | 5 
B | 13 
C | 9 

在上述情況下,我想只拉記錄B,所以我可以將其標記爲不匹配。我不確定一個簡單的方法來做到這一點。我已經嘗試了外部聯接(Union All in Access),左右兩個域都加入了。沒有任何工作。

+0

你使用的是MySQL還是MS Access? (不要標記不涉及的產品。) – jarlh

+0

@jarlh對不起!我刪除了標籤。我正在使用MS Access。 – Steven

回答

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也存在於第二。

0

你可以使用group by來獲得不同計數的id(我把count列當作count是保留關鍵字,稱爲count_col)。

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