日期:2014-05-17  浏览次数:20548 次

sql分类统计查询的问题,统计出0也需要显示,如何处理
表1 tblAnswer

Answerid questionid answer
1001     A1 好
1002     A1 一般
1003     A2 好

Answerid为答案的id号
Questionid为对应的问题的id号
Answer为该题的答案

在answer里,总共有三个选项,分别是 “好”,“一般”,“不好”

我要统计出“好”,“一般”,“不好”分别有多少人。
现在问题是如果“不好”一项统计出来的数据是0(null),那么这一行就不会显示出来。
而我要的结果是 

好 2
一般 1
不好 0

请各位高手指教啊!


------解决方案--------------------
左连接+ isnull()
------解决方案--------------------
SQL code
select a.answer,count(b.answer) as cnt
from
  (select '好' as answer union select '一般' union select '不好') a
left join tblAnswer b
  on a.answer=b.answer
group by a.answer