表一是我汇总出的结果,但是不利于我显示,能不能汇总成表二那样的。原来表数量 比重
大白菜 合格
大白菜 不合格
大白菜 不合格
芹菜 不合格
芹菜 合格
芹菜 合格
芹菜 不合格select 名称, 结果 ,count(名称) as 数量, 数量*@zong as 比重 from table group by 名称,结果表一:
名称 结果 数量 比重
大白菜 不合格 2 22.22
大白菜 合格 1 11.11
芹菜 不合格 2 33.22
芹菜 合格 2 33.22表二:
名称 结果1 数量1 比重1 结果2 数量2 比重2
大白菜 不合格 2 22.22 合格 1 11.11
芹菜 不合格 2 33.22 合格 2 33.22

解决方案 »

  1.   

    case ..when ..和left join都可以
      

  2.   

    select 名称, '不合格' as 结果1 ,sum(case when 结果 = '不合格' then 1 else 0 end) as 数量1, sum(case when 结果 = '不合格' then 1 else 0 end) *@zong as 比重1,
    '合格' as 结果2 ,sum(case when 结果 = '合格' then 1 else 0 end) as 数量2, sum(case when 结果 = '合格' then 1 else 0 end) *@zong as 比重2
     from table group by 名称