2016-05-30 53 views
2

我想在Dx1, Dx2, Dx3中找到添加相同類別和組重複該類別名稱的次數。跨多列計數

表分類:

ID Name 
1 A 
2 B 

表DX:

ID Dx 1 Dx 2 Dx 3 
1 1  1  1 
2 1  1  2 

結果查詢:

Category_name Count_dx* 
A    5 
B    1 

感謝。

+1

你的問題是什麼? – Daan

+0

它會更好。如果您顯示*嘗試查詢* –

+0

歡迎您堆棧溢出。請編輯您的問題,向我們展示您迄今爲止所嘗試的內容,以及您在哪裏遇到困難。這不是「按需寫入代碼網站」。請花幾分鐘[遊覽](http:// stackoverflow/tour)瞭解該網站的工作原理。 –

回答

1

我給出了答案,雖然你的問題似乎是隱含的。

SELECT 
Categories.Name, 
COUNT(*) AS Count_dx 
FROM Categories 
INNER JOIN 
(
    SELECT 
    Dx1 dx_val 
    FROM Dx 

    UNION ALL 

    SELECT 
    Dx2 dx_val 
    FROM Dx 

    UNION ALL 

    SELECT 
    Dx3 dx_val 
    FROM Dx 
) AS t 
ON Categories.ID = t.dx_val 
GROUP BY t.dx_val; 

也許你想在Dx table獲得類別ID(每個類別)的計數橫跨三列(Dx1, Dx2 and Dx3)。如果是這樣,那麼上面的查詢完成這項工作。