我应该能够从我在这里阅读的其他问题/答案中找到答案,但我今天无法获得任何工作。任何帮助都非常感谢。
我有两个查询,计算“好”反馈的实例,以及来自单个表的“坏”反馈。我只想加入他们,以便我可以看到类似下面的内容
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,聚合等等。
答案 0 :(得分: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
答案 1 :(得分: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