【发布时间】:2012-03-05 18:47:04
【问题描述】:
我有这个查询,想缩进输出并从最后一列获取总数。 现在它给出了
person |year|dossiers
------------------------------------------------|----|--------
9210124 |1110| 166
9210124 |1111| 198
9210124 |1112| 162
9210161 |1110| 183
9210161 |1111| 210
9210161 |1112| 142
我想拥有
person |year|dossiers
------------------------------------------------|----|--------
9210124 |1110| 166
|1111| 198
|1112| 162
9210161 |1110| 183
|1111| 210
|1112| 142
total 1061
这里是查询
select
pers_nr "person",
to_char(import_dt,'YYMM') "year and month",
count(pers_nr) "dossiers"
from
rdms_3codon
where
trunc(import_dt) >= trunc(trunc(sysdate, 'Q') -1, 'Q')
and trunc(import_dt) < trunc(sysdate, 'Q')-1/(24*60*60)
group by
pers_nr,
to_char(import_dt,'YYMM')
order by
pers_nr
有人可以帮帮我吗?
【问题讨论】:
-
数据展示不应该是查询结果的一部分。只需使用您的编程语言进行布局!
-
计算(子)总计、透视表、隐藏值都是您的报告工具可以轻松处理的任务。您可以计算总数并使用 UNION ALL 将它们合并到您的结果集中,但是报告工具可以让这些任务变得轻而易举,不要在 SQL 中执行它们。
-
我通常不使用 db 引擎来格式化数据或设置布局样式。在 SQL Server 中,“COMPUTE”子句允许您在查询的底部添加一个聚合函数:也许 Oralce 中也有这样的子句。格式化数据的一种快速方法是使用电子表格创建可读的报告。关于您的数据,我会使用一个数据透视表,其中“人”作为行标题,年份作为列标题,档案作为数据。
-
感谢 cmets,但我有一个 web 应用程序,它的报告只是存储在数据库中的 sql,非常方便快速提供报告,输出在网格中抽取,因为各种使用报告我想为一些报告提供一些基本的输出