GL_BALANCE科目余额表

本文提供了一个复杂的SQL查询示例,用于从财务系统中提取特定期间内的余额信息。该查询包括期初余额、本期借贷发生额及期末余额等关键数据,并支持多货币处理。

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

--PTD  YTD

SELECT ba.currency_code

      ,nvl(ba.begin_balance_dr
          ,0) - nvl(ba.begin_balance_cr
                   ,0) begin_balance --期初余额 原币
      ,decode(ba.currency_code
             ,'CNY'
             ,nvl(ba.begin_balance_dr
                 ,0) - nvl(ba.begin_balance_cr
                          ,0)
             ,nvl(ba.begin_balance_dr_beq
                 ,0) - nvl(ba.begin_balance_cr_beq
                          ,0)) begin_balance_beq --期初余额 本币
      ,ba.period_net_dr --本期借方发生额 原币
      ,ba.period_net_dr_beq --本期借方发生额 本币      
      ,ba.period_net_cr --本期贷方发生额 原币
      ,ba.period_net_cr_beq --本期贷方发生额 本币
      ,nvl(ba.period_net_dr_beq
          ,0) - nvl(ba.period_net_cr_beq
                   ,0) --PTD
      ,(nvl(ba.begin_balance_dr
           ,0) - nvl(ba.begin_balance_cr
                     ,0) + nvl(ba.period_net_dr
                               ,0) - nvl(ba.period_net_cr
                                         ,0)) ytd_balance --期末余额 原币
      ,(nvl(ba.begin_balance_dr_beq
           ,0) - nvl(ba.begin_balance_cr_beq
                     ,0) + nvl(ba.period_net_dr_beq
                               ,0) - nvl(ba.period_net_cr_beq
                                         ,0)) ytd_balance_beq --期末余额 本币
FROM   gl.gl_balances           ba
      ,gl_code_combinations_kfv gcc
      ,gl.gl_ledgers            led

WHERE  1 = 1
AND    led.ledger_id = 2021
AND    ba.code_combination_id = gcc.code_combination_id
AND    ba.ledger_id = led.ledger_id
AND    ba.period_name = '2015-02'
AND    ba.period_year = '2015'
AND    ba.period_num = '02'
AND    gcc.code_combination_id IN (6000)
select distinct COUNT(*) as COUNT , ---笔数 ---ebankdzd.count, ebankdzd.curacc, org_orgs.name as curname, bd_defdoc.def2 as SSBK,----所属板块 ebankdzd.trans_date, '久悬账户'as JXZH, 'YQZL' as tablefalg, org_orgs.pk_org, org_orgs.name as orgsname from bd_bankaccbas bd_bankaccbas left join org_orgs on org_orgs.pk_org= bd_bankaccbas.pk_org left join bd_defdoc bd_defdoc on bd_defdoc.def1=bd_bankaccbas.pk_org and bd_defdoc.pk_defdoclist in (select pk_defdoclist from bd_defdoclist where bd_defdoclist.code ='SK04') left join (SELECT distinct ---COUNT(*) as COUNT , ---笔数 ebank_dzd.curacc,---本方账号 ---ebank_dzd.curname,---本方户名 substr( ebank_dzd.trans_date, 1, 7 ) as trans_date,---交易日期 max ( ebank_dzd.trans_date ) as last_trans_date,---交易日期 ---TRUNC(SYSDATE)-TRUNC(to_date(max ( ebank_dzd.trans_date ) , 'YYYY-MM-DD HH24:MI:SS')) as CE, CASE ---WHEN TRUNC(TO_DATE(parameter('cxsj'), 'YYYY-MM-DD HH24:MI:SS'))-TRUNC(to_date(max ( ebank_dzd.trans_date ), 'YYYY-MM-DD HH24:MI:SS')) > 90 THEN '未发生交易周期(天)>90' when TRUNC(SYSDATE)-TRUNC(to_date(max ( ebank_dzd.trans_date ), 'YYYY-MM-DD HH24:MI:SS')) > 90 THEN '未发生交易周期(天)>90' ELSE '未发生交易周期(天)<90' END AS WFSJYZQ, ---未发生交易周期 ROW_NUMBER() OVER ( PARTITION BY ebank_dzd.curacc ORDER BY TO_DATE(MAX(ebank_dzd.trans_date), 'YYYY-MM-DD HH24:MI:SS') DESC ) AS rn FROM ebank_dzd ebank_dzd left join org_orgs org_orgs on org_orgs.pk_org= ebank_dzd.pk_org WHERE (org_orgs.pk_org='0001Q7100000000021CL' or org_orgs.isbusinessunit ='Y') and org_orgs.dr=0 and ebank_dzd.dr=0 and ebank_dzd.trans_abstr not like '%结息%' ---and ebank_dzd.pk_org ='0001SW1000000000DI99' and ebank_dzd.curacc='121100500000012544' ---and substr( ebank_dzd.trans_date, 1, 7 )='2024-12' group by ebank_dzd.curacc,ebank_dzd.curname,substr( ebank_dzd.trans_date, 1, 7 ),ebank_dzd.cdflag) ebankdzd on ebankdzd.CURACC = bd_bankaccbas.accnum where (org_orgs.pk_org='0001Q7100000000021CL' or org_orgs.isbusinessunit ='Y') and (org_orgs.code <'1203' or org_orgs.code >'1216') and org_orgs.dr=0 and bd_bankaccbas.dr=0 and bd_bankaccbas.accclass !=0 and bd_bankaccbas.enablestate=2 and bd_bankaccbas.accstate=0 and bd_bankaccbas.accclass=2 ---and ebankdzd.WFSJYZQ='未发生交易周期(天)>90' and ebankdzd.rn=1 and TRUNC(SYSDATE)-TRUNC(to_date(ebankdzd.last_trans_date, 'YYYY-MM-DD HH24:MI:SS')) > 90 ---and TRUNC(TO_DATE(parameter('cxsj'), 'YYYY-MM-DD HH24:MI:SS')) -TRUNC(to_date(ebankdzd.last_trans_date, 'YYYY-MM-DD HH24:MI:SS')) > 90 group by ebankdzd.curacc, bd_defdoc.def2,----所属板块 ebankdzd.trans_date, org_orgs.pk_org, org_orgs.name union all -----------其余的取科目发生额 select distinct COUNT(*) as COUNT , ---笔数 gldetail.accnum as CURACC, gldetail.orgname as CURNAME, ---gldetail.accname as CURNAME, bd_defdoc.def2 as SSBK,----所属板块 max(gldetail.preparedMM) as TRANS_DATE,----制单日期 ---gldetail.preparedDD as cxsj,----查询日期 ---gldetail.DBZDJYJE, ---gldetail.JYBS, ---交易笔数 '久悬账户'as JXZH, gldetail.tablefalg, gldetail.pk_org, gldetail.orgname as orgsname from (select distinct ---COUNT(*) as COUNT , ---笔数 gl_detail.pk_accasoa, ---gl_detail.pk_accountingbook, gl_detail.pk_org, org_orgs.code orgcode, org_orgs.name orgname, ---gl_detail.yearv yearv, gl_docfree1.F11 pk_bankaccbas, bd_bankaccsub.accnum, bd_bankaccsub.accname, substr( gl_detail.prepareddatev, 1, 7 ) as preparedMM,----制单日期 max(substr( gl_detail.prepareddatev, 1, 10 )) as preparedDD,----制单日期 ---gl_detail.voucherkindv , ---凭证类型 CASE WHEN ---TRUNC(TO_DATE(parameter('cxsj'), 'YYYY-MM-DD HH24:MI:SS'))-TRUNC(to_date(max ( gl_detail.prepareddatev), 'YYYY-MM-DD HH24:MI:SS')) > 90 THEN '未发生交易周期(天)>90' TRUNC(SYSDATE)-TRUNC(to_date(max ( gl_detail.prepareddatev), 'YYYY-MM-DD HH24:MI:SS')) > 90 THEN '未发生交易周期(天)>90' ELSE '未发生交易周期(天)<90' END AS WFSJYZQ, ---未发生交易周期 'detail' tablefalg, -- 窗口函数:按pk_accasoa分组,按日期倒序排名 ROW_NUMBER() OVER ( PARTITION BY gl_detail.pk_accasoa ORDER BY TO_DATE(MAX(gl_detail.prepareddatev), 'YYYY-MM-DD HH24:MI:SS') DESC ) AS rn from gl_detail gl_detail left join org_orgs org_orgs on org_orgs.pk_org= gl_detail.pk_org left join gl_docfree1 gl_docfree1 on gl_detail.assid = gl_docfree1.assid left join bd_accasoa bd_accasoa on bd_accasoa.pk_accasoa = gl_detail.pk_accasoa and bd_accasoa.dr = 0 ---会计科目 left join bd_account bd_account on bd_account.pk_account = bd_accasoa.pk_account and bd_account.dr = 0 --会计科目基本信息 left join bd_bankaccsub bd_bankaccsub on bd_bankaccsub.pk_bankaccsub=gl_docfree1.F11 and bd_bankaccsub.fronzenstate=0---银行账户子户 left join bd_bankaccbas bd_bankaccbas on bd_bankaccsub.pk_bankaccbas=bd_bankaccbas.pk_bankaccbas and bd_bankaccbas.accstate=0---银行账户子户 where bd_account.code like ('1002%') ---and gl_detail.yearv =TO_CHAR(TRUNC(SYSDATE), 'YYYY') and gl_detail.adjustperiod >= '00' and gl_detail.adjustperiod <= '12' and gl_detail.discardflagv <> 'Y' ---作废标志 AND gl_detail.tempsaveflag <> 'Y' ---暂存标志 and gl_detail.dr = 0 and gl_detail.voucherkindv !=2 and gl_detail.explanation not like '%结息%' ----摘要 --and gl_detail.voucherkindv <> 255 ---and gl_detail.pk_managerv = 'N/A' -- and gl_detail.voucherkindv <> 5 and gl_docfree1.F11 <> 'NN/A' and 1 = 1 and bd_bankaccsub.pk_bankaccbas not in (select ebank_balance.pk_bankaccbas---银行账户主户pk from ebank_balance ebank_balance ----银行账户余额 WHERE ebank_balance.dr=0 ) and (org_orgs.code <'1203' or org_orgs.code >'1216') ---and gl_detail.pk_org ='0001SW1000000000DI99' ---and substr( gl_detail.prepareddatev, 1, 7 )='2024-12' and bd_bankaccbas.accstate=0 and bd_bankaccbas.enablestate=2 group by gl_detail.pk_accasoa, gl_detail.pk_org, org_orgs.code, org_orgs.name, ---gl_detail.pk_accountingbook, ---gl_detail.yearv, gl_docfree1.F11, bd_bankaccsub.accnum, bd_bankaccsub.accname, ---gl_detail.debitamount, ---gl_detail.creditamount, ---gl_detail.voucherkindv, ---gl_detail.prepareddatev substr(gl_detail.prepareddatev, 1, 7) ) gldetail left join bd_defdoc bd_defdoc on bd_defdoc.def1=gldetail.pk_org and bd_defdoc.pk_defdoclist in (select pk_defdoclist from bd_defdoclist where bd_defdoclist.code ='SK04') where ---TRUNC(TO_DATE(parameter('cxsj'), 'YYYY-MM-DD HH24:MI:SS')) -TRUNC(to_date(gldetail.preparedDD, 'YYYY-MM-DD HH24:MI:SS')) > 90 TRUNC(SYSDATE)-TRUNC(to_date(gldetail.preparedDD, 'YYYY-MM-DD HH24:MI:SS')) > 90 ---and gldetail.pk_org ='0001SW1000000000DI99' and gldetail.rn=1 group by ----gldetail.COUNT , ---笔数 gldetail.accnum, gldetail.accname, bd_defdoc.def2,----所属板块 gldetail.preparedMM,----制单日期 gldetail.tablefalg, gldetail.pk_org, gldetail.orgname 现在这个语句里存在银行账户所属组织的条件分别在银行和总账的里进行过滤 现在想去掉这个条件
最新发布
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼鱼章

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值