2017-05-22 11 views
1

私はここで読んだ他の質問/回答からこれを理解できるはずですが、今日は何もできません。どんな助けでも本当に感謝しています。SQL - グリッド出力用に同じテーブルに対して2つのクエリを結合する

"GOOD"フィードバックのインスタンスをカウントし、1つのテーブルから "BAD"フィードバックをカウントする2つのクエリがあります。それが重要な場合、私は、私はVBAから多数のクエリを実行している

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

下のようなものを見ることができるように私はそれらに参加したい、と0のは、ちょうどnullにすることができます。私は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 ALLを集計、OUTER JOINを、INNER JOINを、JOINを、UNIONを試してみた、など

答えて

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

これも素晴らしいです - 本当に感謝しています! –

関連する問題