在給金融行業做報表時,經常會遇到乙個問題,就是按照月份進行報表統計,那麼對於月份不確定的列該如何統計呢?
思路如下:
1、在儲存過程中拼接sql
2、將儲存過程中的結果集放在乙個臨時表中
3、在程式中呼叫儲存過程和該錶,用resultset獲取列數和列名。
**如下:
label_pro_start: -- 程式處理開始標籤
begin
/*增加報表臨時表tmp_payment_***
*/-- 1.如果臨時表存在則刪除
drop table if exists tmp_payment_***;
-- 2.生成動態列名
set @ee='';
select @ee:=concat(@ee,'sum(if(c_time=\'',c_time,'\'',',n_amount,0)) as \'',c_time,'\',') from (select distinct c_time from 表名) a;
-- 3.拼接查詢語句
set @qq=concat('create table tmp_payment_*** as select v_fund_code ,v_short_name as v_short_name, v_pay_method ,v_pay_full_name ,
v_recipient,
v_property ,
v_subject ,',left(@ee,length(@ee)-1),' ,sum(n_amount) as totalmoney ,
n_total ,
v_type ,
v_imp_batchno,
c_mark,
c_check_state,
d_check_date,
(select
realname
from
user
where
id = v_check_user
) v_check_user
from 表名 where v_type=\'a2\' group by v_short_name ');
-- 4.執行查詢,插入報表資料到臨時表
prepare stmt2 from @qq;
execute stmt2;
end
動態列報表的製作
在資料資訊系統中,常常會看到這樣一類報表需求,它們往往格式簡單,一般為列表式明細報表,但是要顯示的列很多。而不同終端使用者在不同時刻關心的資料又不同,這樣就要求報表能夠讓他們隨心所欲的選擇要顯示的列,以便直觀地檢視資料。最終效果如下圖所示 那怎麼實現這種需求呢?多做幾個典型報表,根據使用者不同進行不...
動態列報表的製作
在資料資訊系統中,常常會看到這樣一類報表需求,它們往往格式簡單,一般為列表式明細報表,但是要顯示的列很多。而不同終端使用者在不同時刻關心的資料又不同,這樣就要求報表能夠讓他們隨心所欲的選擇要顯示的列,以便直觀地檢視資料。最終效果如下圖所示 動態列效果圖 那怎麼實現這種需求呢?多做幾個典型報表,根據使...
資料集中不確定資料列的報表製作
在專案中,經常會有根據不同的條件,選擇輸出不同的資料的需求。典型應用場景 在乙個工資查詢模組中,不同的角色的員工,有著不同的薪酬項,即資料列數不確定。問題 如何將資料集中不確定的資料列顯示在報表中 解決問題思路 首先 潤幹報表提供了ds1.colcount 函式,此函式的功能是求出資料集的總列數。其...