0% found this document useful (0 votes)
7 views

MissingBudgetAccountsSQL

The document contains a SQL query that retrieves various details related to control budgets, segments, and tree structures, including issues with segment values in specified tree versions. It uses multiple nested queries and joins to gather data from various tables, applying conditions to filter results based on the status of control budgets and segment values. The final output includes maximum values and specific attributes grouped by control budget and segment details.

Uploaded by

carajesh.avn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

MissingBudgetAccountsSQL

The document contains a SQL query that retrieves various details related to control budgets, segments, and tree structures, including issues with segment values in specified tree versions. It uses multiple nested queries and joins to gather data from various tables, applying conditions to filter results based on the status of control budgets and segment values. The final output includes maximum values and specific attributes grouped by control budget and segment details.

Uploaded by

carajesh.avn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

SELECT max(decode(node_issue, 1, 'Segment value not the specified tree version of

the tree', 'Segment value without any parent in the specified tree version with the
specified label')) issue,
dat.value segment_value_w_issue,
dat.segment_name,
max(dat.segment_value_start_date) segment_value_start_date,
max(dat.segment_value_end_date) segment_value_end_date,
dat.control_budget_name,
max(control_budget_status_code) control_budget_status_code,
dat.tree_structure_code,
dat.tree_name,
dat.tree_code,
dat.tree_version_name,
dat.tree_label_name,
dat.segment_column_name,
dat.segment_sequence_number_in_COA,
dat.control_budget_id,
max(dat.value_set_id) value_set_id,
dat.tree_version_id,
dat.tree_label_id
FROM
(
SELECT dat.value,
dat.control_budget_name,
dat.control_budget_status_code,
lbl.label_name tree_label_name,
dat.tree_structure_code,
dat.tree_name,
dat.tree_code,
tv.tree_version_name,
dat.segment_name,
dat.segment_column_name,
dat.segment_sequence_number_in_COA,
dat.control_budget_id,
dat.value_set_id,
dat.tree_version_id tree_version_id,
dat.tree_label_id tree_label_id,
dat.segment_value_start_date,
dat.segment_value_end_date,
nvl(sum( decode(hier.pk1_value, NULL, 1, decode(hier.ancestor_tree_label_id,
dat.tree_label_id, 2,0)))
OVER (partition by dat.value),0) node_issue
FROM
(SELECT
dat.control_budget_id,
dat.control_budget_name,
dat.control_budget_status_code,
dat.segment_name,
dat.segment_column_name,
dat.segment_sequence_number_in_COA,
dat.tree_structure_code,
dat.tree_code,
dat.source_segment_column_name,
dat.tree_name,
dat.value_set_id,
dat.tree_version_id,
dat.tree_label_data_source_id,
dat.tree_label_id,
vsv.value,
vsv.start_date_active segment_value_start_date,
vsv.end_date_active segment_value_end_date
FROM
(SELECT
dat.control_budget_id,
max(dat.control_budget_name) control_budget_name,
max(dat.control_budget_status_code) control_budget_status_code,
max(dat.segment_name) segment_name,
max(dat.tree_structure_code) tree_structure_code,
max(dat.tree_name) tree_name ,
max(dat.tree_code) tree_code ,
max(dat.segment_column_name) segment_column_name,
max(dat.source_segment_column_name) source_segment_column_name,
max(dat.segment_sequence_number_in_COA)
segment_sequence_number_in_COA,
max(dat.value_set_id) value_set_id,
cbsegver.tree_version_id,
cbsegver.tree_label_data_source_id,
cbsegver.tree_label_id
FROM
(SELECT
cb.control_budget_id,
cb.name control_budget_name,
cb.status_code control_budget_status_code,
segtl.name segment_name,
seg.column_name segment_column_name,
seg.sequence_number segment_sequence_number_in_COA,
cbseg.key_segment_id,
cbseg.tree_structure_code,
cbseg.tree_code,
cbseg.source_segment_column_name,
tree.tree_name,
seginst.value_set_id
FROM fusion.xcc_control_budgets cb,
fusion.fnd_kf_str_instances_b coa,
fusion.fnd_kf_segments_b seg,
fusion.fnd_kf_segments_tl segtl,
fusion.fnd_kf_segment_instances seginst,
fusion.xcc_cb_key_segments cbseg,
fusion.fnd_tree_tl tree
WHERE cb.status_code IN ('IN_USE', 'CLOSED')
AND coa.application_id = 10052
AND coa.key_flexfield_code = 'XCC'
AND coa.structure_instance_number = cb.budget_chart_of_accounts_id
AND seg.structure_id = coa.structure_id
AND seg.enabled_flag = 'Y'
AND segtl.structure_id = seg.structure_id
AND segtl.segment_code = seg.segment_code
AND segtl.language = userenv('LANG')
AND seginst.structure_instance_id = coa.structure_instance_id
AND seginst.segment_code = seg.segment_code
AND cbseg.control_budget_id = cb.control_budget_id
AND cbseg.key_segment_column_name = seg.column_name
AND tree.tree_structure_code = cbseg.tree_structure_code
AND tree.tree_code = cbseg.tree_code
AND tree.language = userenv('LANG')
AND cbseg.tree_structure_code = 'GL_ACCT_FLEX'
) dat,
fusion.xcc_cb_period_statuses cbps,
fusion.xcc_cb_key_seg_tree_versions cbsegver
WHERE cbps.control_budget_id = dat.control_budget_id
AND cbsegver.key_segment_id = dat.key_segment_id
AND cbps.effective_period_num between cbsegver.start_eff_period_num and
cbsegver.end_eff_period_num
AND cbps.status_code <> 'CLOSED'
GROUP BY dat.control_budget_id, dat.key_segment_id,
cbsegver.tree_version_id,cbsegver.tree_label_data_source_id,cbsegver.tree_label_id
) dat,
fusion.fnd_vs_value_sets vs, fusion.fnd_vs_values_b vsv
WHERE vs.value_set_id = dat.value_set_id
AND vs.validation_type = 'INDEP'
AND vsv.value_set_id = vs.value_set_id
AND vsv.enabled_flag = 'Y'
) dat,
fusion.fnd_tree_version_tl tv,
fusion.fnd_tree_label tlbl,
fusion.fnd_label_tl lbl,
fusion.xcc_seg_val_hier_rf hier
WHERE tv.tree_structure_code = dat.tree_structure_code
AND tv.tree_code = dat.tree_code
AND tv.tree_version_id = dat.tree_version_id
AND tv.language = userenv('LANG')
AND tlbl.tree_structure_code = dat.tree_structure_code
AND tlbl.tree_code = dat.tree_code
AND tlbl.data_source_id = dat.tree_label_data_source_id
AND tlbl.tree_label_id = dat.tree_label_id
AND lbl.tree_structure_code(+) = tlbl.label_pk1_value
AND lbl.data_source_id = tlbl.label_pk2_value
AND lbl.label_id = tlbl.label_pk3_value
AND lbl.language = userenv('LANG')
AND hier.tree_structure_code(+) = dat.tree_structure_code
AND hier.tree_code(+) = dat.tree_code
AND hier.tree_version_id(+) = dat.tree_version_id
AND hier.pk1_value(+) = dat.value
AND hier.is_leaf(+) = 'Y'
) dat
WHERE node_issue IN (0,1) -- 0 for segment value in the tree but without a parent with
the specified tree label and 1 for segment value not in tree
GROUP BY dat.control_budget_id, dat.control_budget_name,
dat.segment_column_name, dat.segment_name,
dat.segment_sequence_number_in_COA, dat.tree_structure_code, dat.tree_code,
dat.tree_version_id,
dat.tree_name, dat.tree_version_name, dat.tree_label_id, dat.tree_label_name,
dat.value
order by dat.control_budget_name

You might also like