2017-05-22 39 views
1

我應該能夠從其他的問題/解答我在這裏讀想出​​解決辦法,但我不能得到任何今天的工作。任何幫助真的很感激。SQL - 加入對同一個表的兩個查詢網格輸出

我有兩個查詢,統計「GOOD」反饋的實例和單個表中的「BAD」反饋。我只是想加入他們的行列,這樣我可以看到類似下面

ID | GOOD | BAD 
121 | 0 | 7 
123 | 5 | 0 
287 | 32 | 8 

我從VBA運行的多個查詢,如果該事項,以及0的可以只是空。我可以在VBA中清理那些東西。

查詢1:

select ID, count(*) 
from HLFULL 
where DEPT= 'HLAK' 
    and feedback = 'GOOD' 
group by ID 

查詢2:

select ID, count(*) 
from HLFULL 
where DEPT= 'HLAK' 
    and feedback = 'BAD' 
group by ID 

我試過UNION,UNION ALL,JOIN,INNER JOIN,OUTER JOIN,聚合等

回答

2

你能做到有條件的聚集是這樣的:

select ID, 
    count(case when feedback = 'GOOD' then 1 end) as Good, 
    count(case when feedback = 'BAD' then 1 end) as Bad 
from HLFULL 
where DEPT = 'HLAK' 
    and feedback in ('GOOD', 'BAD') 
group by ID 
+0

工作得很好,非常感謝您! –

+0

@JP_Romano不客氣。 – GurV

0

您應該能夠使用條件聚合來獲得結果。這種類型的查詢使用CASE表達式與您的聚合函數一起獲得多列:

select ID, 
    count(case when feedback = 'GOOD' then Id end) as Good, 
    count(case when feedback = 'BAD' then Id end) as Bad 
from HLFULL 
where DEPT= 'HLAK' 
group by ID 
+0

這是偉大的太 - 真的很感激! –