SQL - 加入两个针对网格输出的相同 table 的查询

SQL - joining two queries against same table for grid output

我应该可以从其他 questions/answers 我在这里读到的文章中弄清楚这一点,但我今天什么也做不了。非常感谢任何帮助。

我有两个查询,计算 "GOOD" 个反馈的实例,以及来自单个 table 个反馈的 "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、聚合等

您可以像这样进行条件聚合:

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

您应该能够使用条件聚合获得结果。这种类型的查询使用 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