MissingBudgetAccountsSQL
MissingBudgetAccountsSQL
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