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

数据统计(分类小计)的问题
如何在一个结果集中返回分类小计.
如:物品         价格
      电脑         3500
      打印机     1200
      电脑         4500
      打印机     1800
希望得到结果
      电脑         3500
      电脑         4500
      小计         8000
      打印机     1200
      打印机     1800
      小计         3000

------解决方案--------------------
SELECT CASE WHEN (GROUPING(物品) = 1) THEN '小計 '
ELSE ISNULL(物品, 'UNKNOWN ')
END AS 物品 ,

SUM(价格) AS 价格
FROM 表
GROUP BY 物品 WITH ROLLUP

------解决方案--------------------
SELECT CASE WHEN (GROUPING(物品) = 1) THEN '小计 '
ELSE 物品
END AS 物品,
SUM(价格) AS 价格
FROM tablename
GROUP BY 物品 WITH ROLLUP

------解决方案--------------------
select * from tablename
union all
select 物品+ '小计 ',sum(价格) from tablename
group by 物品+ '小计 '
order by 物品


物品 价格
----------- -----------
打印机 1200
打印机 1800
打印机小计 3000
电脑 4500
电脑 3500
电脑小计 8000
------解决方案--------------------
select * from t3
union all
select wp + '小計 ',sum(jg) from T3 group by wp order by wp