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

求助,SQL 统计写法!
    各位朋友,本人求教一个SQL写法,有个表里面有,(回访日期,很好,较好,一般,接车,机电,钣金,美容,销售)等字段,除“回访日期”外其它字段类型都是"BIT" 现在想,统计一个是间段内,的(很好,较好,一般,接车,机电,钣金,美容,销售)等字段值为"true"的统计汇总,
     昨天求助论坛的朋友,得出写法:
     
select sum(case 很好 when 1 then 1 else 0 end) as sum_很好,
sum(case 较好 when 1 then 1 else 0 end) as sum_较好,
sum(case 一般 when 1 then 1 else 0 end) as sum_一般,
sum(case 接车 when 1 then 1 else 0 end) as sum_接车,
sum(case 机电 when 1 then 1 else 0 end) as sum_机电,
sum(case 钣金 when 1 then 1 else 0 end) as sum_钣金,
sum(case 美容 when 1 then 1 else 0 end) as sum_美容,
sum(case 销售 when 1 then 1 else 0 end) as sum_销售  from table

    得到的结果是:
   sum_很好   sum_较好  sum_一般  sum_接车  sum_机电  sum_钣金  sum_美容  sum_销售
     10         20       30       10        5        12       13      14 

结果是正确的,但不符合我要的显示方式:
我想使这呈现:

  评价类型    得分
   SUM_很好    10
   SUM_较好    20
   sum_一般    30
   sum_接车    10
   sum_机电    5
   sum_钣金    12
   sum_美容    13
   sum_销售    14
请问该如何实现? 谢谢!

------解决方案--------------------
SELECT 'sum_很好',sum(case 很好 when 1 then 1 else 0 end) FROM table 
UNION ALL
SELECT 'sum_较好',sum(case 较好 when 1 then 1 else 0 end) FROM table 


以此类推
------解决方案--------------------
 SELECT 'sum_很好' 评价类型 ,
        SUM(CASE 很好
              WHEN 1 THEN 1
              ELSE 0
            END) 得分
 FROM   [table]
 UNION ALL
 SELECT 'sum_较好' 评价类型 ,
        SUM(CASE 较好
              WHEN 1 THEN 1