用SQL如何实现在表最后一行小计

订单日期订单号品名型号�数量�总价2006-09-01P018013ED16010�4.82200.852006-09-01P0... 订单日期 订单号 品名型号 �数量 �总价
2006-09-01 P018013 ED16010 �4.8 2200.85
2006-09-01 P018013 ED16010 �4.8 2200.85
2006-09-01 P018013 ED16010 �4.8 2200.85
2006-09-01 P018013 ED16010 �4.8 2200.85
只按日期分组,且只对数量小计,怎么忽略其它列
卡姆安的狗:我想用group by with rollup 实现只对订单日期分组,对数量用聚合函数sum,如何忽略其它列的聚合呢,因为不分组的列一定要用聚合函数,但我又不想要全部聚合
展开
 我来答
hy1397471
推荐于2016-01-03 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17154
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部

如图表a:

使用union all ,来连接小计

charlif
2008-09-17 · TA获得超过231个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:0
展开全部
用 COMPUTE 和 COMPUTE BY 汇总数据
提供 COMPUTE 和 COMPUTE BY 是为了向后兼容。请改为使用下列组件:

Microsoft® SQL Server™ 2000 Analysis Services 和用于 Analysis Services 的 OLE DB 或 Microsoft ActiveX® 数据对象(多维)(ADO MD) 一起使用。有关更多信息,请参见 Microsoft SQL Server™ 2000 Analysis Services。

ROLLUP 运算符。有关更多信息,请参见用 ROLLUP 汇总数据。
COMPUTE BY 子句使您得以用同一 SELECT 语句既查看明细行,又查看汇总行。可以计算子组的汇总值,也可以计算整个结果集的汇总值。

COMPUTE 子句需要下列信息:

可选的 BY 关键字,该关键字可按对一列计算指定的行聚合。

行聚合函数名称;例如,SUM、AVG、MIN、MAX 或 COUNT。

要对其执行行聚合函数的列。
COMPUTE 生成的结果集
COMPUTE 所生成的汇总值在查询结果中显示为分离的结果集。包括 COMPUTE 子句的查询的结果类似于控制中断报表,即汇总值由指定的组(或称中断)控制的报表。可以为各组生成汇总值,也可以对同一组计算多个聚合函数。

当 COMPUTE 带有可选的 BY 子句时,符合 SELECT 条件的每个组都有两个结果集:

每个组的第一个结果集是明细行集,其中包含该组的选择列表信息。

每个组的第二个结果集有一行,其中包含该组的 COMPUTE 子句中所指定的聚合函数的小计。
当 COMPUTE 不带可选的 BY 子句时,SELECT 语句有两个结果集:

每个组的第一个结果集是包含选择列表信息的所有明细行。

第二个结果集有一行,其中包含 COMPUTE 子句中所指定的聚合函数的合计。

参考资料: SQL SERVER 联机丛书

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卡姆安的狗
推荐于2016-08-23 · TA获得超过337个赞
知道答主
回答量:118
采纳率:100%
帮助的人:0
展开全部
不明白你的意思,
汇总和明细一起输出的话,结构必需一致,汇总没有的列可以用常数替换,字段别名为你要忽略的列,最后再排序,就得到明细和明细最后一行汇总了.不知道我说明白了没有.

select * from (
select 订单日期,订单号 ,品名型号 ,�数量 ,�总价
from 表名
union all
select 订单日期,'' 订单号,'' 品名型号 ,�sum(数量) 数量汇总,�'' 总价 from 表名
group by 订单日期)
order by 订单日期
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshiwanminglu
2008-09-16 · TA获得超过195个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:211万
展开全部
我觉得楼主的意思是不是要做个报表呀?如果是做报表的话,报表本身的功能就支持分组
根据楼主提出的要求,按日期分组,对数量小计,很好办的~~~我写一个语句 select 订单日期,sum(数量) from 表 group by 订单日期
其实,就可以了~~ 楼主写的问题补充我还是不太明白,如果有什么不对的话,可以把问题在补充完善点,举个例子,我来帮你回答。。。~~

我又看了看,明白楼主的意思了~~
select t0.订单日期,t0.订单号 ,T0.品名型号 ,�T1.数量 T0.总价 from
表名 t0 ,(select 订单日期,sum(数量) from 表 group by 订单日期 ) t1 where t0.订单日期=T1.订单日期

注:t0 是你现在的表,T1是构造的表~~ QQ:329342524
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旋天渣观9129
2008-09-16 · TA获得超过1487个赞
知道大有可为答主
回答量:1443
采纳率:0%
帮助的人:1622万
展开全部
select * from (
select * from dingdanbiao
union
select 订单日期,'z' as 订单号,'z' as 品名型号,sum(数量) as 数量,�sum(总价) as 总价 from dingdanbiao group by 订单日期
) A order by 订单日期,订单号,品名型号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式