取值来源与总账
SELECT decode(gcc.segment5, '0', gcc.segment6, gcc.segment5) cus_code,
gcc.segment3,
trunc(nvl(to_date(gjl.attribute4, 'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date)) act_date,
trunc(to_date('2019-01-31 23:59:59', 'RRRR/MM/DD HH24:MI:SS')) -
trunc(nvl(to_date(gjl.attribute4, 'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date)) + 1 days,
SUM(decode(sign(to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') -
trunc(gjl.effective_date)),
1,
(nvl(gjl.entered_dr, 0) - nvl(gjl.entered_cr, 0)),
0)) year_begin,
SUM(decode(sign(to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') -
trunc(gjl.effective_date)),
1,
(nvl(gjl.entered_dr, 0) - nvl(gjl.entered_cr, 0)),
0)) period_begin,
SUM(CASE
WHEN to_date('2019-01-01 00:00:00', 'RRRR/MM/DD HH24:MI:SS') <=
trunc(gjl.effective_date) AND
trunc(gjl.effective_date) <=
to_date('2019-01-31 23:59:59', 'RRRR/MM/DD HH24:MI:SS') THEN
nvl(gjl.entered_dr, 0)
ELSE
0
END) period_dr,
SUM(CASE
WHEN to_date('2019-01-01 00:00:00', 'RRRR/MM/DD HH24:MI:SS') <=
trunc(gjl.effective_date) AND
trunc(gjl.effective_date) <=
to_date('2019-01-31 23:59:59', 'RRRR/MM/DD HH24:MI:SS') THEN
nvl(gjl.entered_cr, 0)
ELSE
0
END) period_cr,
SUM(decode(sign(to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') -
trunc(gjl.effective_date)),
1,
0,
(nvl(gjl.entered_dr, 0) - nvl(gjl.entered_cr, 0)))) period_net,
SUM((nvl(gjl.entered_dr, 0) - nvl(gjl.entered_cr, 0))) amount
FROM gl_je_headers gjh, gl_je_lines gjl, gl_code_combinations gcc
WHERE gjh.ledger_id = 2021
AND gjh.currency_code = 'CNY'
AND gjh.je_header_id = gjl.je_header_id
AND gjl.status = 'P'
AND gcc.summary_flag <> 'Y'
AND gjl.code_combination_id = gcc.code_combination_id
AND trunc(nvl(to_date(gjl.attribute4, 'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date)) <=
to_date('2019-01-31 23:59:59', 'RRRR/MM/DD HH24:MI:SS')
AND gjh.default_effective_date <=
to_date('2019-01-31 23:59:59', 'RRRR/MM/DD HH24:MI:SS')
AND substr(gcc.segment3, 1, 4) = '1122'
GROUP BY gcc.segment5,
gcc.segment6,
gcc.segment3,
trunc(nvl(to_date(gjl.attribute4, 'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date))
根据定义的模板取值
SELECT cus.*
FROM (SELECT dt.cus_code,
dt.segment3,
(SELECT ffv.description
FROM fnd_flex_values_vl ffv, fnd_flex_value_sets ffvs
WHERE ffv.flex_value_set_id = ffvs.flex_value_set_id
AND ffvs.flex_value_set_name = '%%_COA_ACC'
AND ffv.flex_value = dt.segment3) segment3_desc,
dt.cus_name,
dt.days_start,
dt.aging_bucket_line_id,
dt.amount,
SUM(dt.year_begin) over(PARTITION BY dt.cus_code, dt.segment3) year_begin_bal,
SUM(dt.period_begin) over(PARTITION BY dt.cus_code, dt.segment3) period_begin_bal,
SUM(dt.period_dr) over(PARTITION BY dt.cus_code, dt.segment3) period_dr,
SUM(dt.period_cr) over(PARTITION BY dt.cus_code, dt.segment3) period_cr,
SUM(dt.period_net) over(PARTITION BY dt.cus_code, dt.segment3) period_amount,
SUM(dt.amount) over(PARTITION BY dt.cus_code, dt.segment3) sum_amount
FROM (SELECT tnt.cus_code,
tnt.segment3,
afa_ar_book_age_pkg.get_company_name(tnt.cus_code) cus_name,
aabl.aging_bucket_line_id,
aabl.days_start,
SUM(tnt.year_begin) year_begin,
SUM(tnt.period_begin) period_begin,
SUM(tnt.period_dr) period_dr,
SUM(tnt.period_cr) period_cr,
SUM(tnt.period_net) period_net,
SUM(tnt.amount) amount
FROM (SELECT decode(gcc.segment5, '0', gcc.segment6, gcc.segment5) cus_code,
gcc.segment3,
trunc(nvl(to_date(gjl.attribute4,
'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date)) act_date,
trunc(to_date('2019-01-31 23:59:59',
'RRRR/MM/DD HH24:MI:SS')) -
trunc(nvl(to_date(gjl.attribute4,
'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date)) + 1 days,
SUM(decode(sign(to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') -
trunc(gjl.effective_date)),
1,
(nvl(gjl.entered_dr, 0) -
nvl(gjl.entered_cr, 0)),
0)) year_begin,
SUM(decode(sign(to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') -
trunc(gjl.effective_date)),
1,
(nvl(gjl.entered_dr, 0) -
nvl(gjl.entered_cr, 0)),
0)) period_begin,
SUM(CASE
WHEN to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') <=
trunc(gjl.effective_date) AND
trunc(gjl.effective_date) <=
to_date('2019-01-31 23:59:59',
'RRRR/MM/DD HH24:MI:SS') THEN
nvl(gjl.entered_dr, 0)
ELSE
0
END) period_dr,
SUM(CASE
WHEN to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') <=
trunc(gjl.effective_date) AND
trunc(gjl.effective_date) <=
to_date('2019-01-31 23:59:59',
'RRRR/MM/DD HH24:MI:SS') THEN
nvl(gjl.entered_cr, 0)
ELSE
0
END) period_cr,
SUM(decode(sign(to_date('2019-01-01 00:00:00',
'RRRR/MM/DD HH24:MI:SS') -
trunc(gjl.effective_date)),
1,
0,
(nvl(gjl.entered_dr, 0) -
nvl(gjl.entered_cr, 0)))) period_net,
SUM((nvl(gjl.entered_dr, 0) - nvl(gjl.entered_cr, 0))) amount
FROM gl_je_headers gjh,
gl_je_lines gjl,
gl_code_combinations gcc
WHERE gjh.ledger_id = 2021
AND gjh.currency_code = 'CNY'
AND gjh.je_header_id = gjl.je_header_id
AND gjl.status = 'P'
AND gcc.summary_flag <> 'Y'
AND gjl.code_combination_id =
gcc.code_combination_id
AND trunc(nvl(to_date(gjl.attribute4,
'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date)) <=
to_date('2019-01-31 23:59:59',
'RRRR/MM/DD HH24:MI:SS')
AND gjh.default_effective_date <=
to_date('2019-01-31 23:59:59',
'RRRR/MM/DD HH24:MI:SS')
AND substr(gcc.segment3, 1, 4) = '1122'
GROUP BY gcc.segment5,
gcc.segment6,
gcc.segment3,
trunc(nvl(to_date(gjl.attribute4,
'RRRR/MM/DD HH24:MI:SS'),
gjh.default_effective_date))) tnt,
ar_aging_bucket_lines_b aabl
WHERE tnt.days BETWEEN aabl.days_start AND aabl.days_to
AND aabl.aging_bucket_id = 1
AND (aabl.type <> 'CURRENT')
GROUP BY tnt.cus_code,
tnt.segment3,
aabl.aging_bucket_line_id,
aabl.days_start) dt) cus
WHERE (cus.year_begin_bal != 0 OR cus.period_begin_bal != 0 OR
cus.period_amount != 0 OR cus.sum_amount != 0)
ORDER BY segment3, cus_code, days_start;