每4筆資料進行匯總,最後不夠4筆資料也要匯總,如何下sql語句?

foreveryday007 2004-07-29 08:27:32
其實就是實現報表中每頁匯總,如何做到呢?
1 10
2 20
3 30
4 40
==100
5 50
6 60
7 70
==180
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bzszp 2004-07-29
  • 打赏
  • 举报
回复
这样也可以,简化了一下
16:23 SQL> select * from tt;

A
-------
10
12
13
14
15
20
200
2
50

≡?行。

檬奔? 00: 00: 00.31
16:43 SQL> select sum(a) from (
16:45 2 select trunc((rownum-1)/4) id,a from tt) t
16:45 3 group by rollup(id,a);

SUM(A)
-------
10
12
13
14
49
2
15
20
200
237
50

SUM(A)
-------
50
336

≡?3行。

檬奔? 00: 00: 00.78
16:46 SQL>
foreveryday007 2004-07-29
  • 打赏
  • 举报
回复
想出來了.
結合兩位的方法;再定義變量把它放置在固定位置上;
dinya2003 2004-07-29
  • 打赏
  • 举报
回复
你的需求在前端报表中来处理.数据库只管返回一个数据集. 你把取到的数据集放到一个DataSet中.然后定义变量来判断DataSet的数据. 可以到.net版块中找水晶报表高手帮忙.
foreveryday007 2004-07-29
  • 打赏
  • 举报
回复
樓上的方法確實可以把數據分組,匯總;
但是在報表格式上感覺難以實現;

每4筆匯總,可以在每page放置sum;
若是最後一頁不夠4筆,sum的位置就自動移上去了.

..................
bzszp 2004-07-29
  • 打赏
  • 举报
回复
09:06:12 SQL> select * from tt;

A
----------
10
12
13
14
15
20
200
2
50

已选择9行。

已用时间: 00: 00: 00.31
09:06:22 SQL> select trunc((id-1)/5)+1,to_char(id),a from (
09:06:29 2 select rownum id,a from tt)
09:06:29 3 union
09:06:29 4 select trunc((id-1)/5)+1,'sum',sum(a) from (
09:06:29 5 select rownum id,a from tt
09:06:29 6 ) group by trunc((id-1)/5);

TRUNC((ID-1)/5)+1 TO_CHAR(ID) A
----------------- ---------------------------------------- ----------
1 1 10
1 2 12
1 3 13
1 4 14
1 5 15
1 sum 64
2 6 20
2 7 200
2 8 2
2 9 50
2 sum 272

已选择11行。

已用时间: 00: 00: 00.31
09:06:30 SQL>
foreveryday007 2004-07-29
  • 打赏
  • 举报
回复
我還是不會...
dinya2003 2004-07-29
  • 打赏
  • 举报
回复
在报表中定义一个变量.记录当前值.然后根据接下来的值是否可以被4整除,来决定求和,如果不够四行则直接求和,在报表中实现.

好久没有用水晶报表了,不知道在win98上的问题是不是解决了. 还是习惯用active report.好用.
foreveryday007 2004-07-29
  • 打赏
  • 举报
回复
水晶報表,剛學,希望大家幫忙.
海清 2004-07-29
  • 打赏
  • 举报
回复
你用什麽作報表阿,REPORT的化可以用匯總列實現嗎?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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