报表模板设计问题,用时有一个SQL问题

QQ截图20181220110908.png

select trim(GBOBJ)||trim(GMSUB) a,

case ${GBAN} 

  when 1 then GBAN01/100

  when 2 then GBAN02/100 + GBAN01/100

  when 3 then GBAN03/100 + GBAN02/100 + GBAN01/100

  when 4 then GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 5 then GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 6 then GBAN06/100 + GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 7 then GBAN07/100 + GBAN06/100 + GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 8 then GBAN08/100 + GBAN07/100 + GBAN06/100 + GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 9 then GBAN09/100 + GBAN08/100 + GBAN07/100 + GBAN06/100 + GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 10 then GBAN10/100 + GBAN09/100 + GBAN08/100 + GBAN07/100 + GBAN06/100 + GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 11 then GBAN11/100 + GBAN10/100 + GBAN09/100 + GBAN08/100 + GBAN07/100 + GBAN06/100 + GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  when 12 then GBAN12/100 + GBAN11/100 + GBAN10/100 + GBAN09/100 + GBAN08/100 + GBAN07/100 + GBAN06/100 + GBAN05/100 + GBAN04/100 + GBAN03/100 + GBAN02/100 + GBAN01/100

  end as GBAN

from proddta.f0902,proddta.f0901

where GMAID = GBAID

and GBCTRY = '${GBCTRY}' 

and GBFY = '${GBFY}' 

and GBCO = '${GBCO}' 

order by a desc


这是我求本年累计金额总和的SQL      比如我选择18年6月份    报表模板就来16年的总和   17年的总和    到18年  就是1+2+.....+6月的总和     求问模板怎么设计  SQL如何改一下

FineReport baijiajun89757 发布于 2018-12-20 11:13
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2018-12-20 14:22
(
 select ... ,GBAN01 from TABLE
union all 
 select ... ,GBAN02 from TABLE
union all 
 select ... ,GBAN03 from TABLE
union all 
 select ... ,GBAN04 from TABLE
union all 
 select ... ,GBAN05 from TABLE
union all 
 select ... ,GBAN06 from TABLE
union all 
 select ... ,GBAN07 from TABLE
union all 
 select ... ,GBAN08 from TABLE
union all 
 select ... ,GBAN09 from TABLE
union all 
 select ... ,GBAN10 from TABLE
union all 
 select ... ,GBAN11 from TABLE
union all 
 select ... ,GBAN12 from TABLE
)

先把sql这样拼起来再去查询,然后按项目和年份分组,按你上面的条件过滤

将得到的结果里的项目纵向扩展,年份横向扩展

最佳回答
0
myseanLv3初级互助
发布于2018-12-20 13:54

select sum(value) 年总计 ,year from table

where year between 2016 and 2018 and month between 01 and 06  --每年的1-6月 这是同比 

where datediff(mm,'2016-01-01',日期)>=0 and datediff(mm,'2018-06-01',日期)<=0 -- 这个就是16 17合计 18年到6月

group by year

最佳回答
0
胡水水Lv2见习互助
发布于2018-12-20 14:04

image.png把数据加工成这样,然后,select 金额 from 加工表 where  表中年<= 参数年月 。就不用一个一个case when 太麻烦了

  • 4关注人数
  • 558浏览人数
  • 最后回答于:2018-12-20 14:22
    请选择关闭问题的原因
    确定 取消
    返回顶部