有一个表名为:tab1
字段:
    单位
    名称
    状态
内容:
    单位   名称   状态
    d1      n1      0
    d1      n2      1
    d1      n2      2
    d2      m1      1想用一条sql语句得到如下结果:单位   状态0   状态1  状态2
d1       1       1      1
d2       0       1      0
请高手帮帮忙

解决方案 »

  1.   

    SELECT 单位,
    SUM(CASE WHEN 状态=0 THEN 1 ELSE 0 END) AS 状态0,
    SUM(CASE WHEN 状态=1 THEN 1 ELSE 0 END) AS 状态1,
    SUM(CASE WHEN 状态=0 THEN 1 ELSE 0 END) AS 状态2
    FROM TB 
    GROUP BY 单位
      

  2.   

    SELECT 单位,
    SUM(CASE WHEN 状态=0 THEN 1 ELSE 0 END) AS 状态0,
    SUM(CASE WHEN 状态=1 THEN 1 ELSE 0 END) AS 状态1,
    SUM(CASE WHEN 状态=2 THEN 1 ELSE 0 END) AS 状态2
    FROM TB  
    GROUP BY 单位
      

  3.   

    SQL77厉害呀 我刚好在做这样的查询 结果还搜到了这个帖子 哈啊哈哈 哈哈哈哈