能不能在查询的同时进行合计?

SnHnBn 2002-06-20 06:31:09
有一个复杂的查询:
select ......
......
from ......
......
where ......
......
然后要这个查询的某些字段在结果集的最后一行加上个合计,
有什么好的方法没有,我想了很多方法都不满意,
不知道那位大虾有更好的方法?
...全文
70 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingSunSha 2002-06-30
  • 打赏
  • 举报
回复
这不是sql应该做的,而是某些报表工具的功能
biti_rainy 2002-06-30
  • 打赏
  • 举报
回复
select a,b,c,sum(d) d from xxx group by rollup(a,b,c);

a,b,c唯一确定一条记录
biti_rainy 2002-06-30
  • 打赏
  • 举报
回复
select a,b,c,sum(d) from xxx group by rollup(a,b,c);

a,b,c就是唯一的就好了
xinpingf 2002-06-28
  • 打赏
  • 举报
回复
楼主,不要因为一个两个不太方便的东西就否定整个东西
tyrone98 2002-06-28
  • 打赏
  • 举报
回复
如果你不分行的话可以用
select sum( a ) over ( partition by b order by b ) , b from table
可以取得以b排序的但是每一行都有一个汇总数
xmwgp 2002-06-21
  • 打赏
  • 举报
回复
添加一个临时表保存这个复杂查询的数据(或视图),因为你后面也还要用到这些数据,那时直接从表中取,当然比再查询快啦.而且后面的合计行也只要再SUM一下就好了.
SnHnBn 2002-06-21
  • 打赏
  • 举报
回复
看来各位都提出了我曾经想到的方法,我不满意的原因是:
penitent(只取一瓢) 和 3yugui(我不适合搞it)的方法多写了一份SQL查询语句,我说过这个语句很复杂,因此为了良好的维护性,我不想多写一遍,况且我稍后还要利用这个结果集来做其他的查询,更不能对重复查询这个结果集,太影响效率了。
xg_delayth(铁鹰) 的方法的缺点是除了最后一行的总合计对我有用外,还多了很多不想要的分组合计。
那位还有更好的方法?重分酬谢。
SnHnBn 2002-06-21
  • 打赏
  • 举报
回复
难道Oracle的存储过程中还得靠视图来完成这种数据查询吗?看来好像还是SQL Server 好用。
xg_delayth 2002-06-20
  • 打赏
  • 举报
回复
提供一个思路表
A1 A2
---------- ----------
1 62
2 63
1 61
3 66
3 67
3 68
1 69

select a1,a2,sum(a1) from caishui.test1 group by rollup(a1,a2)

A1 A2 SUM(A1)
---------- ---------- ----------
1 61 1
1 62 1
1 69 1
1 3
2 63 2
2 2
3 66 3
3 67 3
3 68 3
3 9
14
在oracle8.17中出现的一些新的分析函数,其中一些的概念来自sqlserver
如分析函数中的rollup 、cube以及新的函数rank(),看一下吧这些都是对于查询用的,效率会有不错的提高!
3yugui 2002-06-20
  • 打赏
  • 举报
回复
可以啊,好像你不满意的原因是要在最后一行加上合计,你可以给每一个字段加上一个序号,把合计的序号设为最大。
select xhao00,.....
from..
where ...
union all
select max(xhao00),sum(),...
from ...
order by 1;
lws0472 2002-06-20
  • 打赏
  • 举报
回复
同意楼上
penitent 2002-06-20
  • 打赏
  • 举报
回复
select ......
......
from ......
......
where ......
......
union
select sum(),sum()……
from ......
......
where ......
......

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧