select 名称,count(*),sum(重量),sum(金额),
case 状态 when 已售 then count(*) else 0 end,
sum(case 状态 when 已售 then 重量 else 0 end),
sum(case 状态 when 已售 then 金额 else 0 end),
case 状态 when 可售 then count(*) else 0 end,
sum(case 状态 when 可售 then 重量 else 0 end),
sum(case 状态 when 可售 then 金额 else 0 end)
from 表
group by 名称

解决方案 »

  1.   

    不好意思,改一下
    select b.名称,count(*),sum(b.重量),sum(b.金额),
    (select conut(*) from 表 a where a.名称=b.名称 and a.状态=已售),
    sum(case b.状态 when 已售 then b.重量 else 0 end),
    sum(case b.状态 when 已售 then b.金额 else 0 end),
    (select conut(*) from 表 c where c.名称=b.名称 and c.状态=已售),
    sum(case b.状态 when 可售 then b.重量 else 0 end),
    sum(case b.状态 when 可售 then b.金额 else 0 end)
    from 表 b
    group by 名称