/* 
程序名称:资产负债表 
 必要:需要修改a的账套ID、本位币种及科目设定;需要修改报表行集ID 
 RRC系列:展开基于计算的行引用 
a:基于账户分配的行金额 
A:基于计算的行金额明细 
B:基于计算的行金额汇总 
 本程序在11.5.9及11.5.10测试通过 
*/

SELECT   AX.AXIS_SEQ, 
          AX.DESCRIPTION, 
          DECODE(AX.CHANGE_SIGN_FLAG,'Y',-DECODE(RRA4.AXIS_SET_ID,NULL,B.期初余额,RRA4.期初余额), 
                                          DECODE(RRA4.AXIS_SET_ID,NULL,B.期初余额,RRA4.期初余额)) 期初数, 
          DECODE(AX.CHANGE_SIGN_FLAG,'Y',-DECODE(RRA4.AXIS_SET_ID,NULL,B.期末数,RRA4.期末数), 
                                          DECODE(RRA4.AXIS_SET_ID,NULL,B.期末数,RRA4.期末数))     期末数, 
          DECODE(AX.CHANGE_SIGN_FLAG,'Y',-DECODE(RRA4.AXIS_SET_ID,NULL,B.上年同期,RRA4.上年同期), 
                                          DECODE(RRA4.AXIS_SET_ID,NULL,B.上年同期,RRA4.上年同期)) 上年同期 
FROM 
          (SELECT  A.AXIS_SET_ID, 
                   A.AXIS_SEQ, 
                   SUM(DECODE(A.OPERATOR,'-',-A.期初余额,A.期初余额)) 期初余额, 
                   SUM(DECODE(A.OPERATOR,'-',-A.期末数,A.期末数))     期末数, 
                   SUM(DECODE(A.OPERATOR,'-',-A.上年同期,A.上年同期)) 上年同期 
          FROM ( 
                  SELECT  RRC6.AXIS_SET_ID, 
                          RRC6.AXIS_SEQ, 
                          RRC6.CALCULATION_SEQ, 
                          RRC6.OPERATOR, 
                          RRA3.期初余额, 
                          RRA3.期末数, 
                          RRA3.上年同期                                                    
                  FROM   (select  a.axis_set_id, 
                                  a.axis_seq, 
                                  SUM(DECODE(a.运算符号,'+',a.期初余额,'-',-a.期初余额,a.期初余额))                         期初余额, 
                                  SUM(Decode(a.运算符号,'+',a.期末数,'-',-a.期末数,a.期末数))                               期末数, 
                                  SUM(Decode(a.运算符号,'+',a.上年同期累计,'-',-a.上年同期累计,a.上年同期累计))             上年同期 
                         from    
                                 (select gcc.code_combination_id                                                      科目ID, 
                                         gcc.summary_flag                                                             汇总标记, 
                                         rra2.range_mode                                                              汇总, 
                                         rra2.axis_set_id, 
                                         rra2.axis_seq, 
                                         rra2.sign                                                                    运算符号, 
                                         gcc.segment1||'.'||gcc.segment2||'.'||gcc.segment3||'.'||gcc.segment4 
                                                     ||'.'||gcc.segment5||'.'||gcc.segment6                           账户, 
                                         gb.period_name                                                               会计期间, 
                                         NVL(gb.begin_balance_dr,0)+NVL(gb.period_net_dr,0) 
                                         -NVL(gb.begin_balance_cr,0)-NVL(gb.period_net_cr,0)                          期末数, 
                                         (select NVL(gb2.begin_balance_dr,0)-NVL(gb2.begin_balance_cr,0) 期初借方余额 
                                         from   gl.gl_balances     gb2 
                                          where  gb2.period_year=gb.period_year 
                                          and    gb2.period_num=1 
                                          and    gb2.currency_code=gb.currency_code 
                                          and    gb2.code_combination_id=gb.code_combination_id)                      期初余额, 
                                         (select NVL(gb1.begin_balance_dr,0)+NVL(gb1.period_net_dr,0) 
                                                 -NVL(gb1.begin_balance_cr,0)-NVL(gb1.period_net_cr,0) 本年累计 
                                         from   gl.gl_balances     gb1 
                                          where  gb1.period_year=gb.period_year-1 
                                          and    gb1.period_num=gb.period_num 
                                          and    gb1.currency_code=gb.currency_code 
                                          and    gb1.code_combination_id=gb.code_combination_id)                      上年同期累计 
                                from    gl.gl_balances             gb, 
                                         gl.gl_code_combinations    gcc, 
                                         (select rra.axis_set_id, 
                                                 rra.axis_seq, 
                                                 rra.sign, 
                                                 rra.range_mode, 
                                                 rra.segment1_low,rra.segment1_high, 
                                                 rra.segment2_low,rra.segment2_high, 
                                                 rra.segment3_low,rra.segment3_high, 
                                                 rra.segment4_low,rra.segment4_high, 
                                                 rra.segment5_low,rra.segment5_high, 
                                                 rra.segment6_low,rra.segment6_high 
                                         from    rg.rg_report_axis_contents rra 
                                         where   (rra.set_of_books_id=1 OR RRA.SET_OF_BOOKS_ID IS NULL)) rra2 
                                 where   gb.code_combination_id=gcc.code_combination_id 
                                 and     gb.currency_code='CNY'
                                and     gb.actual_flag='A'
                                and     gb.period_name='&请输入会计期间' 
                                and     gcc.segment1 in('&公司段1','&公司段2') 
                                 and     gcc.segment2 between NVL(rra2.segment2_low,'00') and NVL(rra2.segment2_high,'T') 
                                 and     gcc.segment3 between rra2.segment3_low and rra2.segment3_high 
                                 and     gcc.segment4 between NVL(rra2.segment4_low,'00000000') and NVL(rra2.segment4_high,'T') 
                                 and     gcc.segment5 between NVL(rra2.segment5_low,'000000') and NVL(rra2.segment5_high,'T') 
                                 and     gcc.segment6 between NVL(rra2.segment6_low,'0000') and NVL(rra2.segment6_high,'T') 
                                 and     gcc.summary_flag=rra2.range_mode 
                                   )a   --a,此段代码用于计算账户分配金额 
                group by a.axis_set_id,a.axis_seq 
                 )RRA3, 
                 (SELECT   RRC4.AXIS_SET_ID, 
                           RRC4.AXIS_SEQ, 
                           RRC4.CALCULATION_SEQ, 
                           RRC4.OPERATOR, 
                           DECODE(RRC5.AXIS_SEQ_LOW,NULL,RRC4.AXIS_SEQ_LOW,RRC5.AXIS_SEQ_LOW) AXIS_SEQ_LOW 
                  FROM 
                           (SELECT  RRC2.AXIS_SET_ID, 
                                    RRC2.AXIS_SEQ, 
                                    RRC2.CALCULATION_SEQ, 
                                    RRC2.OPERATOR, 
                                    DECODE(RRC3.AXIS_SEQ_LOW,NULL,RRC2.AXIS_SEQ_LOW,RRC3.AXIS_SEQ_LOW) AXIS_SEQ_LOW 
                           FROM 
                                    (select     RRC0.AXIS_SET_ID, 
                                                RRC0.AXIS_SEQ, 
                                                RRC0.CALCULATION_SEQ, 
                                                RRC0.OPERATOR, 
                                                AX3.AXIS_SEQ AXIS_SEQ_LOW 
                                    from    
                                           (select rrc.AXIS_SET_ID, 
                                                   rrc.AXIS_SEQ, 
                                                   rrc.CALCULATION_SEQ, 
                                                   RRC.OPERATOR, 
                                                   decode(RRC.AXIS_SEQ_LOW,null,ax2.axis_seq,rrc.axis_seq_low) AXIS_SEQ_LOW, 
                                                   RRC.AXIS_SEQ_HIGH 
                                           from    rg.rg_report_calculations     RRC, 
                                                   RG.RG_REPORT_AXES             AX2 
                                           WHERE   RRC.AXIS_SET_ID=AX2.AXIS_SET_ID(+) 
                                           AND     RRC.AXIS_NAME_LOW=AX2.AXIS_NAME(+) 
                                           )                                      RRC0, 
                                           RG.RG_REPORT_AXES                      AX3 
                                    where    AX3.AXIS_SET_ID=rrc0.AXIS_SET_ID 
                                    AND      AX3.AXIS_SEQ BETWEEN RRC0.AXIS_SEQ_LOW AND RRC0.AXIS_SEQ_HIGH 
                                    )  RRC2,                                                     --RRC2,基于计算的报表行区间, 
                                   (select     RRC0.AXIS_SET_ID, 
                                                RRC0.AXIS_SEQ, 
                                                RRC0.CALCULATION_SEQ, 
                                                RRC0.OPERATOR, 
                                                AX3.AXIS_SEQ AXIS_SEQ_LOW 
                                    from    
                                           (select rrc.AXIS_SET_ID, 
                                                   rrc.AXIS_SEQ, 
                                                   rrc.CALCULATION_SEQ, 
                                                   RRC.OPERATOR, 
                                                   decode(RRC.AXIS_SEQ_LOW,null,ax2.axis_seq,rrc.axis_seq_low) AXIS_SEQ_LOW, 
                                                   RRC.AXIS_SEQ_HIGH 
                                           from    rg.rg_report_calculations     RRC, 
                                                   RG.RG_REPORT_AXES             AX2 
                                           WHERE   RRC.AXIS_SET_ID=AX2.AXIS_SET_ID(+) 
                                           AND     RRC.AXIS_NAME_LOW=AX2.AXIS_NAME(+) 
                                           )                                      RRC0, 
                                           RG.RG_REPORT_AXES                      AX3 
                                    where    AX3.AXIS_SET_ID=rrc0.AXIS_SET_ID 
                                    AND      AX3.AXIS_SEQ BETWEEN RRC0.AXIS_SEQ_LOW AND RRC0.AXIS_SEQ_HIGH 
                                    )    RRC3                                                      --RR3,与RR2相同,自引用 
                          WHERE    RRC2.AXIS_SET_ID=RRC3.AXIS_SET_ID(+) 
                           AND      RRC2.AXIS_SEQ_LOW=RRC3.AXIS_SEQ(+))     RRC4, --RRC4,基于计算的报表行区间,第一次分解 
                          (SELECT   RRC2.AXIS_SET_ID, 
                                    RRC2.AXIS_SEQ, 
                                    RRC2.CALCULATION_SEQ, 
                                    RRC2.OPERATOR, 
                                    DECODE(RRC3.AXIS_SEQ_LOW,NULL,RRC2.AXIS_SEQ_LOW,RRC3.AXIS_SEQ_LOW AXIS_SEQ_LOW 
                            FROM 
                                    (select     RRC0.AXIS_SET_ID, 
                                                RRC0.AXIS_SEQ, 
                                                RRC0.CALCULATION_SEQ, 
                                                RRC0.OPERATOR, 
                                                AX3.AXIS_SEQ AXIS_SEQ_LOW 
                                    from    
                                           (select rrc.AXIS_SET_ID, 
                                                   rrc.AXIS_SEQ, 
                                                   rrc.CALCULATION_SEQ, 
                                                   RRC.OPERATOR, 
                                                   decode(RRC.AXIS_SEQ_LOW,null,ax2.axis_seq,rrc.axis_seq_low) AXIS_SEQ_LOW, 
                                                   RRC.AXIS_SEQ_HIGH 
                                           from    rg.rg_report_calculations     RRC, 
                                                   RG.RG_REPORT_AXES             AX2 
                                           WHERE   RRC.AXIS_SET_ID=AX2.AXIS_SET_ID(+) 
                                           AND     RRC.AXIS_NAME_LOW=AX2.AXIS_NAME(+) 
                                           )                                      RRC0, 
                                           RG.RG_REPORT_AXES                      AX3 
                                    where    AX3.AXIS_SET_ID=rrc0.AXIS_SET_ID 
                                    AND      AX3.AXIS_SEQ BETWEEN RRC0.AXIS_SEQ_LOW AND RRC0.AXIS_SEQ_HIGH 
                                    )                    RRC2,                --RRC2,基于计算的报表行区间 
                                   (select     RRC0.AXIS_SET_ID, 
                                                RRC0.AXIS_SEQ, 
                                                RRC0.CALCULATION_SEQ, 
                                                RRC0.OPERATOR, 
                                                AX3.AXIS_SEQ AXIS_SEQ_LOW 
                                    from    
                                           (select rrc.AXIS_SET_ID, 
                                                   rrc.AXIS_SEQ, 
                                                   rrc.CALCULATION_SEQ, 
                                                   RRC.OPERATOR, 
                                                   decode(RRC.AXIS_SEQ_LOW,null,ax2.axis_seq,rrc.axis_seq_low) AXIS_SEQ_LOW, 
                                                   RRC.AXIS_SEQ_HIGH 
                                           from    rg.rg_report_calculations     RRC, 
                                                   RG.RG_REPORT_AXES             AX2 
                                           WHERE   RRC.AXIS_SET_ID=AX2.AXIS_SET_ID(+) 
                                           AND     RRC.AXIS_NAME_LOW=AX2.AXIS_NAME(+) 
                                           )                                      RRC0, 
                                           RG.RG_REPORT_AXES                      AX3 
                                    where    AX3.AXIS_SET_ID = rrc0.AXIS_SET_ID 
                                    AND      AX3.AXIS_SEQ BETWEEN RRC0.AXIS_SEQ_LOW AND RRC0.AXIS_SEQ_HIGH 
                                    )     RRC3                                       --RR3,与RRC2相同,自引用 
                           WHERE   RRC2.AXIS_SET_ID = RRC3.AXIS_SET_ID(+) 
                            AND     RRC2.AXIS_SEQ_LOW = RRC3.AXIS_SEQ(+))           RRC5   --RRC5,与RRC4相同,自引用 
                 WHERE    RRC4.AXIS_SET_ID = RRC5.AXIS_SET_ID(+) 
                  AND      RRC4.AXIS_SEQ_LOW = RRC5.AXIS_SEQ(+) 
                  )   RRC6    --RRC6,基于计算的报表行区间,第二次分解 
                 WHERE    RRC6.AXIS_SET_ID=RRA3.AXIS_SET_ID(+) 
                  AND      RRC6.AXIS_SEQ_LOW=RRA3.AXIS_SEQ(+) 
                  ) A 
                  GROUP BY A.AXIS_SET_ID,A.AXIS_SEQ 
                  ) B, 
                  (select  a.axis_set_id, 
                           a.axis_seq, 
                           SUM(DECODE(a.运算符号,'+',a.期初余额,'-',-a.期初余额,a.期初余额))                         期初余额, 
                           SUM(DECODE(a.运算符号,'+',a.期末数,'-',-a.期末数,a.期末数))                               期末数, 
                           SUM(Decode(a.运算符号,'+',a.上年同期累计,'-',-a.上年同期累计,a.上年同期累计))             上年同期 
                  from    
                           (select gcc.code_combination_id                                                      科目ID, 
                                   gcc.summary_flag                                                             汇总标记, 
                                   rra2.range_mode                                                              汇总, 
                                   rra2.axis_set_id, 
                                   rra2.axis_seq, 
                                   rra2.sign                                                                    运算符号, 
                                   gcc.segment1||'.'||gcc.segment2||'.'||gcc.segment3||'.'||gcc.segment4 
                                               ||'.'||gcc.segment5||'.'||gcc.segment6                           账户, 
                                   gb.period_name                                                               会计期间, 
                                   NVL(gb.begin_balance_dr,0)+NVL(gb.period_net_dr,0) 
                                   -NVL(gb.begin_balance_cr,0)-NVL(gb.period_net_cr,0)                          期末数, 
                                   (select NVL(gb2.begin_balance_dr,0)-NVL(gb2.begin_balance_cr,0) 期初借方余额 
                                   from   gl.gl_balances     gb2 
                                    where  gb2.period_year = gb.period_year 
                                    and    gb2.period_num = 1 
                                    and    gb2.currency_code = gb.currency_code 
                                    and    gb2.code_combination_id = gb.code_combination_id)                      期初余额, 
                                   (select NVL(gb1.begin_balance_dr,0)+NVL(gb1.period_net_dr,0) 
                                          -NVL(gb1.begin_balance_cr,0)-NVL(gb1.period_net_cr,0) 本年累计 
                                   from   gl.gl_balances     gb1 
                                    where  gb1.period_year = gb.period_year-1 
                                    and    gb1.period_num = gb.period_num 
                                    and    gb1.currency_code = gb.currency_code 
                                    and    gb1.code_combination_id = gb.code_combination_id)                      上年同期累计 
                          from    gl.gl_balances             gb, 
                                   gl.gl_code_combinations    gcc, 
                                   (select rra.axis_set_id, 
                                           rra.axis_seq, 
                                           rra.sign, 
                                           rra.range_mode, 
                                           rra.segment1_low,rra.segment1_high, 
                                           rra.segment2_low,rra.segment2_high, 
                                           rra.segment3_low,rra.segment3_high, 
                                           rra.segment4_low,rra.segment4_high, 
                                           rra.segment5_low,rra.segment5_high, 
                                           rra.segment6_low,rra.segment6_high 
                                   from    rg.rg_report_axis_contents rra 
                                   where   (rra.set_of_books_id=1 OR RRA.SET_OF_BOOKS_ID IS NULL)) rra2 
                           where   gb.code_combination_id = gcc.code_combination_id 
                           and     gb.currency_code = ’CNY’ 
                           and     gb.actual_flag = 'A'
                           and     gb.period_name = '&请输入会计期间'
                           and     gcc.segment1 in ('&公司段1','&公司段2') 
                           and     gcc.segment2 between NVL(rra2.segment2_low,'00') and NVL(rra2.segment2_high,'T') 
                           and     gcc.segment3 between rra2.segment3_low and rra2.segment3_high 
                           and     gcc.segment4 between NVL(rra2.segment4_low,'00000000') and NVL(rra2.segment4_high,'T') 
                           and     gcc.segment5 between NVL(rra2.segment5_low,'000000') and NVL(rra2.segment5_high,'T') 
                           and     gcc.segment6 between NVL(rra2.segment6_low,'0000') and NVL(rra2.segment6_high,'T') 
                           and     gcc.summary_flag=rra2.range_mode 
                           )a     --a,此段代码用于计算账户分配金额 
                   group by a.axis_set_id,a.axis_seq )  RRA4, 
                    RG.RG_REPORT_AXES AX 
 WHERE   AX.AXIS_SET_ID = RRA4.AXIS_SET_ID(+) 
 AND     AX.AXIS_SEQ = RRA4.AXIS_SEQ(+) 
 AND     AX.AXIS_SET_ID = B.AXIS_SET_ID(+) 
 AND     AX.AXIS_SEQ = B.AXIS_SEQ(+) 
 AND     AX.AXIS_SET_ID = 1259  --需要修改此报表行集ID 
 ORDER BY AX.AXIS_SEQ ;

通过SQL写FSG报表相关推荐

  1. mysql小计_Mysql必读用SQL实现统计报表中的小计与合计的方法详解

    <Mysql必读用SQL实现统计报表中的"小计"与"合计"的方法详解>要点: 本文介绍了Mysql必读用SQL实现统计报表中的"小计&qu ...

  2. mysql 合计 小计_用SQL实现统计报表中的小计与合计的方法详解

    本篇文章是对使用SQL实现统计报表中的"小计"与"合计"的方法进行了详细的分析介绍,需要的朋友参考下 客户提出需求,针对某一列分组加上小计,合计汇总.网上找了一 ...

  3. 使用sql语句生成报表_SQL Server报表服务:如何使用报表生成器处理常见的最终用户要求

    使用sql语句生成报表 In this article, we will discuss the SQL Server Reporting Service Report Builder and loo ...

  4. IIS 7上安装SQL SERVER 2005报表服务可能导致不能正常连接

    前段时间一直在研究SCOM 2007的报表功能,在POC里测试时候遇到一些问题,本打算装最新的产品WINDOWS SERVER 2008+SQL SERVER 2008+SCOM 2007.只是发现S ...

  5. 用sql写每年的第三周_SQL的弱点(1):复杂SQL不易理解,以及软件工程如何来帮忙...

    1. SQL是经久不衰的基础 能经过时间考验的SQL,其优点毋庸置疑. 对于日常处理数据的朋友们(BI顾问,数据开发,数仓建模,数据研发,ETL工程师,AI工程师等),SQL更是一项非常重要的基础技能 ...

  6. oracle中执行某sql语句后,如一系列delete、update等操作,怎么看影响的行数?如我执行了n个表的delete语句,得看我删除了多少数据,万一sql写的有问题,误删了数据,不是灾难?

    oracle中执行某sql语句后,如一系列delete.update等操作,怎么看影响的行数?如我执行了n个表的delete语句,得看我删除了多少数据,万一sql写的有问题,误删了数据,不是灾难? 使 ...

  7. update更新excel如何指定列为memo_Excel也能设计回写类报表

    Excel也能设计回写类报表?没错啦,今天给大家介绍一个中国式报表软件--Smartbi企业报表软件(简称Smartbi Insight). Smartbi企业报表软件(简称Smartbi Insig ...

  8. sql server 2012 报表开发(1) 如何使用Reporting Service 2012制作报表

    Reporting Service,也就是我们平时经常看到的,报表商业智能,BI,基于SQL Server的报表制作工具,这里的例子,是如何通过visual studio 2010,开发Reporti ...

  9. sql server 2008 报表部署:提示输入用户名密码

    1.环境: winserver 2003 IIS6.0 sqlserver 2008 10.XXXX 2.查看 sqlserver 2008 开始\菜单\程序\Microsoft SQL Server ...

  10. 报表性能优化方案之单数据集分页SQL实现层式报表

    1.概述 我们知道,行式引擎按页取数只适用于Oracle,mysql,hsql和sqlserver2008及以上数据库,其他数据库,如access,sqlserver2005,sqlite等必须编写分 ...

最新文章

  1. 计算机应届生必读的 AI 入门经典书单
  2. 预言丨AI之后无AI
  3. MySQL 5.1 的作业调度
  4. python文件输出-Python 文件和输入输出小结
  5. uni的numberbox怎么用_uni-组件基本操作
  6. 10.Partial Dependence Plots
  7. 《Web Hacking 101》中的链接整理
  8. Laravel中自定义guard,自定义Auth的attempt方法
  9. 单体 soa 微服务 区别_每日一读-从单体到微服务,这些年架构的演变
  10. 5 分钟掌握智联招聘网站爬取并保存到 MongoDB 数据库
  11. iOS集成支付宝H5支付实现跳转与回调的解决方案
  12. 2000-2018年各省能源消费和碳排放数据数据、1997-2017年各省地级市县区碳排放数、各国二氧化碳排放量(人均公吨数)1960-2014年、二氧化碳排放量、各省市碳排放权额分配实施方案
  13. java pojo属性,java中的POJO类属性建议使用包装数据类型
  14. Matlab画堆叠柱状图(颜色设置,x轴外部标注,y轴标注,颜色设置)
  15. elasticsearch启动常见错误
  16. C++Primer 习题 第7章
  17. 变形金刚2 昨日上映 汽车人提前降临地球
  18. 【MySQL】黑马教程MySQL数据库 MySQL基础(一)
  19. git clone出现 fatal: unable to access ‘https://github.com/...‘的解决办法(亲测有效)
  20. 奶爸日记7 - 新手第一次开车上路

热门文章

  1. UE学习笔记:源码安装UE
  2. Flutter--高德地图使用指南
  3. supermap java,SuperMap iObjects Java 10i 产品介绍
  4. UICollectionViewCell复用时修改子页面属性出现混乱的解决方法
  5. mysql 统计当个用户从当前时间连续登录天数,以及多用户某时间段,最长连续登录天数查询
  6. 卡贴机卡贴设置又失效再次折腾
  7. Unity3D坦克大战
  8. 算法--二分查找(python实现)
  9. 请尝试将 `lib` 编译器选项更改为 es2015 或更高版本
  10. vue 引入 element-ui 报 es2015 的错