日期:2014-05-18  浏览次数:20856 次

一个SQL小计的问题
厂商   货品   重量
xx1     AA1       x
xx1     AA2       x
xx2     A2         x
xx3     A2         x

如何用   SQL   查询出来的结果是
xx1     AA1       x
xx1     AA2       x
小计               X
xx2     A2         x
小计               X
xx3     A2         x
小计               X

就是对每个厂商进行分组然后求小计

------解决方案--------------------

create table #t(厂商 varchar(20),货品 varchar(20),重量 int)
insert into #t
select 'xx1 ', 'AA1 ',3
union all select 'xx1 ', 'AA2 ',2
union all select 'xx2 ', 'A2 ', 3
union all select 'xx3 ', 'A2 ',5

Select 厂商,CASE WHEN (GROUPING(货品)=1) THEN '小计 '
ELSE 货品 END as 货品,SUM(重量) as 重量
From #t
GROUP BY 厂商, 货品 WITH ROLLUP