美化查询的输出

时间:2012-03-05 10:09:23

标签: sql oracle layout

我有这个查询,并希望缩进输出并从最后一列获得总数。 现在它给出了

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  

有人能帮帮我吗?

2 个答案:

答案 0 :(得分:6)

如评论中所述,这是一个客户端功能,而不是数据库功能。例如,如果您使用的是SQL * Plus,则可以使用:

break on person
break on report
compute sum label total of dossiers on report

第一行抑制重复的人值;第二个和第三个一起产生底部的总数。 SQL * Plus输出格式化等记录在here

答案 1 :(得分:0)

试试这个。它会给你至少总数,但其余的 对于pers_id,也可以使用RANK()替换为NULL 或者在您的申请代码中,如果有的话......

select  
 pers_nr "person",   
 to_char(import_dt,'YYMM') "year and month",  
 SUM(count(pers_nr)) OVER (ORDER BY year)
FROM ....

希望它有助于升技