oracle資料庫實現彙總報表的方法

2021-08-26 00:15:22 字數 1958 閱讀 6459

--------備忘錄

在常用的彙總報表中,會出現通過某些條件實現分組後,對數量金額進行小計以及總計

可以使用group by rollup(col1,col2,....coln) 來實現分組統計

若要對總計,小計等漢字的顯示進行控制,可以使用case()函式

select

tp.tp_xmbh as xmid,

tp.tp_ccbh as showid,

(case when tp.tp_xmbh is null then null else (select wp.name from zypwt2.pm_project_info wp where status=1 and pi_category='2101'and id=tp.tp_xmbh) end) as col1,

(case when tp.tp_xmbh is null then null else (select to_char(wp.pi_show_start_time,'yyyy-mm-dd')|| '-' ||to_char(wp.pi_show_end_time,'yyyy-mm-dd') from zypwt2.pm_project_info wp where status=1 and pi_category='2101'and id=tp.tp_xmbh) end) as col2,

(case when tp.tp_ccbh is null then null else (select ws.name from zypwt2.pm_show_info ws where ws.status=1 and ws.id= tp.tp_ccbh) end) as col3,

(case when tp.tp_ccbh is null then null else (select to_char(ws.si_show_start_time,'yyyy-mm-dd hh24:mi') from zypwt2.pm_show_info ws where ws.status=1 and ws.id= tp.tp_ccbh) end ) as col4,

(case when tp.tp_ccbh is null then null else (select ven.name from zypwt2.vm_venues_info ven where ven.status='1' and ven.id=(select ws.si_venue_id from zypwt2.pm_show_info ws where ws.status=1 and ws.id=tp.tp_ccbh)) end) as col5,

(case

when tp.tp_pjid is null and tp.tp_ccbh is null and tp.tp_xmbh is not null then '專案總計'

when tp.tp_pjid is null and tp.tp_ccbh is not null then '場次小計'

when tp.tp_pjid is null and tp.tp_ccbh is null and tp.tp_xmbh is null then '總計'

else to_char((select pri.pli_price from zypwt2.pm_price_level_info pri where pri.id=tp.tp_pjid and status='1')) end

) as col6,

sum(tp.tp_sqzs) as col7,

'¥'||sum(tp.tp_sqje) as col8,

sum(tp.tp_tpzs) as col9,

'¥'||sum(tp.tp_tpje) as col10

from crm_dd_tpxx tp

where tp.tp_khbh='decc16ad7f6747b3bf24e5ee379c6b94' and zt='1' group by rollup(tp.tp_xmbh,tp.tp_ccbh,tp.tp_pjid) order by tp.tp_xmbh,tp.tp_ccbh

oracle資料庫實現彙總報表的方法

備忘錄 在常用的彙總報表中,會出現通過某些條件實現分組後,對數量金額進行小計以及總計 可以使用group by rollup col1,col2,coln 來實現分組統計 若要對總計,小計等漢字的顯示進行控制,可以使用case 函式 select tp.tp xmbh as xmid,tp.tp c...

報表資料庫

原文 reportingdatabase 設計 2004年4月2日 bliki 索引如果我採用了 領域模型 domain model 如何支援特定的sql查詢呢?領域模型的要點之一就是在應用資料身上新增重要的操作方法。如果你想為資料生成報表,領域模型可提供大力支援。但是,現存的許多報表工具不支援領域...

Oracle資料庫 語法操作彙總 一

oracle各種語法操作的彙總第一部分 1.啟動資料庫 a.dos命令 sqlplus username password host as sysdba eg.sqlplus rikkatakanashi 123456 localhost 1521 as sysdba b.圖形化介面方式 sqlpl...