通过SQL写FSG报表

这是一个使用SQL编写的资产负债表程序,通过计算和聚合不同账户的期初、期末和上年同期数据来生成报表。程序涉及了对会计期间、账户段、汇总标记等条件的筛选,并通过递归计算行集进行细节和汇总数据的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* 
程序名称:资产负债表 
 必要:需要修改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 
       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值