合计小计--CUX_DETAIL_LEDGER_PKG(单层循环小计合计参考包)

这个Oracle SQL包CUX_DETAIL_LEDGER_PKG主要用于输出报表,包括定义了output_report过程,通过多层循环获取财务数据,并进行小计和总计的计算。过程接受多个参数,如会计期间、凭证号、货币等,通过游标查询和循环处理数据,计算并展示各类汇总信息。
摘要由CSDN通过智能技术生成

CREATE OR REPLACE PACKAGE BODY CUX_DETAIL_LEDGER_PKG IS

   ---输出报表
  PROCEDURE output_report(p_ledger_id     IN NUMBER,
                          p_company       IN VARCHAR2,
                          P_period_name_f IN VARCHAR2,
                          P_period_name_t IN VARCHAR2,
                          P_je_number_f   IN VARCHAR2,
                          p_je_number_t   IN VARCHAR2,
                          p_currency      IN VARCHAR2,
                          P_create_date_f IN VARCHAR2,
                          P_create_date_t IN VARCHAR2,
                          p_coa_ac_f      IN VARCHAR2,
                          p_coa_ac_t      IN VARCHAR2) IS   
  
    CURSOR ac_data /*(p_period_name IN VARCHAR2) */
    IS
      SELECT DISTINCT gcc.concatenated_segments con_seg,
                      cov.description || '.' || ccv.description || '.' ||
                      acv.description || '.' || ICv.description || '.' ||
                      PTv.description || '.' || PJv.description || '.' ||
                      sp1_v.description || '.' || sp2_v.description account_desc
        FROM gl_je_headers          jh,
             gl_je_lines            jl,
             cux.qgl_sequence_value qsv,
             
             gl_code_combinations_kfv gcc,
             fnd_flex_value_sets      cos,
             fnd_flex_values_vl       cov
             
            ,
             fnd_flex_value_sets ccs,
             fnd_flex_values_vl  ccv
             
            ,
             fnd_flex_value_sets acs,
             fnd_flex_values_vl  acv
             
            ,
             fnd_flex_value_sets ICs,
             fnd_flex_values_vl  ICv,
             
             fnd_flex_value_sets PTs,
             fnd_flex_values_vl  PTv
             
            ,
             fnd_flex_value_sets PJs,
             fnd_flex_values_vl  PJv
             
            ,
             fnd_flex_value_sets sp1_s,
             fnd_flex_values_vl  sp1_v
             
            ,
             fnd_flex_value_sets sp2_s,
             fnd_flex_values_vl  sp2_v
      
       WHERE jh.je_header_id = jl.je_header_id
         AND jl.code_combination_id = gcc.code_combination_id
         AND jh.status = 'P'
         AND jh.je_header_id = qsv.je_header_id(+)
            
         AND gcc.segment1 = cov.flex_value
         AND cov.flex_value_set_id = cos.flex_value_set_id
         AND cos.flex_value_set_name = 'EWPT_COA_CO' --公司段
            
         AND gcc.segment2 = ccv.flex_value
         AND ccv.flex_value_set_id = ccs.flex_value_set_id
         AND ccs.flex_value_set_name = 'EWPT_COA_CC' --部门段
            
         AND gcc.segment3 = acv.flex_value
         AND acv.flex_value_set_id = acs.flex_value_set_id
         AND acs.flex_value_set_name = 'EWPT_COA_AC' --科目段
            
         AND gcc.segment4 = ICv.flex_value
         AND ICv.flex_value_set_id = ICs.flex_value_set_id
         AND ICs.flex_value_set_name = 'EWPT_COA_IC' --往来段
            
         AND gcc.segment5 = PTv.flex_value
         AND PTv.flex_value_set_id = PTs.flex_value_set_id
         AND PTs.flex_value_set_name = 'EWPT_COA_PT' --产品门类段
            
         AND gcc.segment6 = PJv.flex_value
         AND PJv.flex_value_set_id = PJs.flex_value_set_id
         AND PJs.flex_value_set_name = 'EWPT_COA_PJ' --项目段
            
         AND gcc.segment7 = sp1_v.flex_value
         AND sp1_v.flex_value_set_id = sp1_s.flex_value_set_id
         AND sp1_s.flex_value_set_name = 'EWPT_COA_SP1' --质量段
            
         AND gcc.segment8 = sp2_v.flex_value
         AND sp2_v.flex_value_set_id = sp2_s.flex_value_set_id
         AND sp2_s.flex_value_set_name = 'EWPT_COA_SP2' --备用段
         --AND nvl(jl.entered_dr, jl.entered_cr) > 0--add by laisuli 20131113--deleted by wrh 20140717:此条件导致部分负金额不显示(14062959,2014-06,10.0.12310301.0.0.0.0.0)
         AND jh.ledger_id = p_ledger_id
         AND gcc.segment1 = p_company
            -- and jl.period_name =p_period_name
         AND jl.period_name >= P_period_name_f
         AND jl.period_name <= P_period_name_t
            
         AND (p_currency IS NULL OR jh.currency_code = p_currency)
         AND jh.default_effective_date >=
             nvl(to_date(P_create_date_f, 'YYYY-MM-DD'),
                 jh.default_effective_date)
         AND jh.default_effective_date <=
             nvl(to_date(P_create_date_t, 'YYYY-MM-DD') + 0.99999,
                 jh.default_effective_date)
            /*and (jh.doc_sequence_value >= P_je_number_f or
                P_je_number_f is null)
            and (jh.doc_sequence_value <= P_je_number_t or
                P_je_number_t is null)*/
         AND (qsv.sequence_value >= P_je_number_f OR P_je_number_f IS NULL)
         AND (qsv.sequence_value <= P_je_number_t OR P_je_number_t IS NULL)
            
         AND (l_segment1_from IS NULL OR gcc.segment1 >= l_segment1_from)
         AND (l_segment1_to IS NULL OR gcc.segment1 <= l_segment1_to)
            
         AND (l_segment2_from IS NULL OR gcc.segment2 >= l_segment2_from)
         AND (l_segment2_to IS NULL OR gcc.segment2 <= l_segment2_to)
            
         AND (l_segment3_from IS NULL OR gcc.segment3 >= l_segment3_from)
         AND (l_segment3_to IS NULL OR gcc.segment3 <= l_segment3_to)
            
         AND (l_segment4_from IS NULL OR gcc.segment4 >= l_segment4_from)
         AND

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以hive的角度检查语法: with cur_dim_comb as (SELECT DISTINCT t.dim_comb ,t.var_sub_class ,t.acc_value FROM gerp.cux_cst_data_alloc_his t WHERE t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id )) select tp.bd_code --事业部编码 ,tp.bd_name --事业部名称 ,hp.ou_code --OU名称 ,hp.ou_name --OU编码 ,op.main_class_desc --差异大类 ,op.acc_value --科目代码 ,op.acc_desc --科目名称 ,op.dim_comb --区分维度 ,op.begin_amount --期初余额 ,op.accrual_amount --本期发生 ,op.balance_diff_alloc_amount --期末差异结存 ,op.var_sub_class ,op.main_class_value ,op.org_id ,op.period_name ,op.job_ver_id from (select up.* ,q1.* from (SELECT DISTINCT maincl.* ,t.* FROM t inner join (SELECT fv.flex_value ,fv.description FROM fv inner join fs on fv.flex_value_set_id = fs.flex_value_set_id AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE' AND fv.enabled_flag = 'Y' AND fv.hierarchy_level = '2' AND fv.flex_value LIKE '10%' ) maincl on t.var_main_class = maincl.flex_value inner join cur_dim_comb on cur_dim_comb.var_sub_class = t.var_sub_class and cur_dim_comb.acc_value = t.acc_value WHERE 1 = 1 AND t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id) ORDER BY maincl.description ,t.acc_value ,cur_dim_comb.dim_comb ) up inner join (SELECT t1.* ,SUM(t1.begin_amount) begin_amount ,SUM(t1.accrual_amount) accrual_amount ,SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount FROM gerp.cux_cst_data_alloc_his t1 LEFT JOIN gerp.cux_cst_data_alloc_his t ON t1.top_var_type = '10' AND t1.var_sub_class = t.var_sub_class --p_var_sub_class AND t1.org_id = t.org_id --p_org_id AND t1.period_name = t.period_name --p_period_name AND t1.job_ver_id = t.job_ver_id --p_job_ver_id AND t1.acc_value = t.acc_value --p_acc_value WHERE t1.dim_comb in (select distinct dim_comb from cur_dim_comb) group by t1.org_id,t1.period_name,t1.job_ver_id,t1.var_sub_class,t1.acc_value ) q1 on q1.org_id = up.org_id --p_org_id AND q1.period_name = up.period_name --p_period_name AND q1.job_ver_id = up.job_ver_id --p_job_ver_id AND q1.var_sub_class = up.var_sub_class --p_var_sub_class AND q1.acc_value = up.acc_value --p_acc_value ) op
05-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值