2015-05-12 77 views
1

我正在嘗試編寫一個腳本來計算基於2個字段匹配的結果 - 但不匹配像相同,但值在整個表中重新出現的位置。例如,我想分別找到場A和場B = x & y(並對這些結果進行計數),但是場A並不總是X而場B也不總是Y.而且,場A和B字段值是未知的。這是我迄今寫的:計數並返回2個字段匹配

select a.fielda, b.fieldb, count (*) 
from tableA a 
join tableB b 
on a.fieldd = b.fieldd 

where a.fielda = b.fieldb --I know this is a problem, just for notes on what I'm trying to accomplish. 
group by b.fieldb, a.fielda 
order by b.fieldb. 

我是一個新手,所以任何幫助將不勝感激。先謝謝你。

+1

一些樣本數據和預期結果會使這個更清晰。 – jarlh

+0

只需刪除'wherea.fielda = b.fieldb'line。根據你所描述的內容,剩下的應該是正確的查詢。 – Tobsey

+0

託比,你是對的。我不認爲通過選擇這兩個領域,我已經找到那些價值相同的記錄。謝謝!!!!! – DJDJ23

回答

0

Tobsey對我而言是正確的。我想,通過選擇兩個領域,我已經找到了這兩個領域一起存在的記錄......我猜,腦屁。感謝您的幫助!

0
SELECT SUM(CASE WHEN a.fielda = b.fieldb THEN 1 ELSE NULL END) AS MatchCount 
    , SUM(CASE WHEN a.fielda = x and b.fieldb = y THEN 1 ELSE NULL END) AS XYCount 
    , COUNT(*) AS FieldDMatchCount 
FROM tableA a 
JOIN tableB b 
    ON a.fieldd = b.fieldd 
相關問題