DECLARE @t TABLE(Item varchar(10),Color varchar(10),Quantity int)
INSERT @t SELECT 'Table','Blue',124
UNION ALL SELECT 'Table','Red', -23
UNION ALL SELECT 'Chair','Blue',101
UNION ALL SELECT 'Chair','Red', -90--统计
SELECT Item,Color,Quantity
FROM(
--明细
SELECT Item,Color,Quantity=SUM(Quantity)
,a1=0,a2=Item,a3=0
FROM @t
GROUP BY Item,Color
UNION ALL
--各Item合计
SELECT '',Item+' 合计',Quantity=SUM(Quantity)
,a1=0,a2=Item,a3=1
FROM @t
GROUP BY Item
UNION ALL
--总计
SELECT '总计','',Quantity=SUM(Quantity)
,a1=1,a2='',a3=1
FROM @t
)a
ORDER BY a1,a2,a3
------------------------
/*--结果
Item Color Quantity
-------------- ---------------------- -----------
Chair Blue 101
Chair Red -90
Chair 合计 11
Table Red -23
Table Blue 124
Table 合计 101
总计 112
--*/
------------------------------------------------------------
我的想法是:
/*--结果
Item Color Quantity s1 s2 s3
-------------- ---------------------- -----------
Chair Blue 101 ...... ...... ......
Chair Red -90
Chair 合计 11
Table Red -23
Table Blue 124
Table 合计 101
总计 112
--*/----------------------------------------
为什么S1,S2,S3没有出现呢,这是一种什么情况?
INSERT @t SELECT 'Table','Blue',124
UNION ALL SELECT 'Table','Red', -23
UNION ALL SELECT 'Chair','Blue',101
UNION ALL SELECT 'Chair','Red', -90--统计
SELECT Item,Color,Quantity
FROM(
--明细
SELECT Item,Color,Quantity=SUM(Quantity)
,a1=0,a2=Item,a3=0
FROM @t
GROUP BY Item,Color
UNION ALL
--各Item合计
SELECT '',Item+' 合计',Quantity=SUM(Quantity)
,a1=0,a2=Item,a3=1
FROM @t
GROUP BY Item
UNION ALL
--总计
SELECT '总计','',Quantity=SUM(Quantity)
,a1=1,a2='',a3=1
FROM @t
)a
ORDER BY a1,a2,a3
------------------------
/*--结果
Item Color Quantity
-------------- ---------------------- -----------
Chair Blue 101
Chair Red -90
Chair 合计 11
Table Red -23
Table Blue 124
Table 合计 101
总计 112
--*/
------------------------------------------------------------
我的想法是:
/*--结果
Item Color Quantity s1 s2 s3
-------------- ---------------------- -----------
Chair Blue 101 ...... ...... ......
Chair Red -90
Chair 合计 11
Table Red -23
Table Blue 124
Table 合计 101
总计 112
--*/----------------------------------------
为什么S1,S2,S3没有出现呢,这是一种什么情况?
解决方案 »
- SQL2000时间转换的问题
- sql2005的某一数据库能否分离后附加到sql2000中?
- 在安装过程出现的错误,请各位大虾指点,快来拿分
- 当SQLServerAgent 正在启动时,无法执行此操作。请稍候再试
- 初学:sql server数据库 和 mysql数据库 有区别吗?不是一个概念?
- 想学SQL SERVER,如何下手???50分求一明路
- 初级问题,请大家帮帮忙
- vfp98中如何一次打印一个表单所有的源代码?
- SQL Server2000怎么去掉字段得自增属性
- 关于获取自动编号的方法!
- 显示前几条数据的问题?一个有考验的问题?
- 如何从excel导入数据到sqlserver的表中,并按id更新该表中的信息?
FROM(
--明细
SELECT Item,Color,Quantity=SUM(Quantity)
,a1=0,a2=Item,a3=0
FROM @t
GROUP BY Item,Color
UNION ALL
--各Item合计
SELECT '',Item+' 合计',Quantity=SUM(Quantity)
,a1=0,a2=Item,a3=1
FROM @t
GROUP BY Item
UNION ALL
--总计
SELECT '总计','',Quantity=SUM(Quantity)
,a1=1,a2='',a3=1
FROM @t
)a
ORDER BY a1,a2,a3
order by 排序
以上语句也可以用grouping 实现