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