不确定列报表sql的实现

本文介绍了一种在金融报表统计中处理不确定月份列的方法,通过存储过程动态拼接SQL,创建临时表并计算各月度金额。步骤包括删除已存在的临时表,生成动态列名,拼接查询语句,并执行插入报表数据。
摘要由CSDN通过智能技术生成

在给金融行业做报表时,经常会遇到一个问题,就是按照月份进行报表统计,那么对于月份不确定的列该如何统计呢?

思路如下:

1、在存储过程中拼接sql

2、将存储过程中的结果集放在一个临时表中

3、在程序中调用存储过程和该表,用resultset获取列数和列名。


代码如下:

label_pro_start:  -- 程序处理开始标签


BEGIN
  /*
     增加报表临时表TMP_PAYMENT_XXX
  */


  -- 1.如果临时表存在则删除
  DROP TABLE IF EXISTS TMP_PAYMENT_XXX;


  -- 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_xxx AS SELECT v_fund_code  ,v_short_name AS v_short_name, v_pay_method ,v_pay_full_name , 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值