v1rus
Зарегистрирован: 18.07.2007 Сообщения: 1
|
Добавлено: Ср Июл 18 2007 19:06 Заголовок сообщения: Помогите с запросом очень надо |
|
|
Есть запрос который выводит иерархию и есть сумма у патомков, нужно сделать сумму у родителей
запрос :
select
lpad(' ', (level - 1)*8 )||value||' '||DESCRIPTION "Наименование" ,summa "Сумма"
from (select FV.FLEX_VALUE VALUE,
FVH.Parent_FLEX_VALUE Parent,
FV.DESCRIPTION DESCRIPTION,sum(a.amount) summa
from fnd_flex_value_norm_hierarchy fvh,
xxgln_register_corr_all a,
xxgln_periods_all p,
xxgln_corr_analyse_all a_m,
xxgln_corr_analyse_all a_s,
fnd_flex_values_vl fv
where a_m.register_correspondence_id(+) = a.register_correspondence_id
and a_s.register_correspondence_id(+) = a.register_correspondence_id
and p.period_id = a.period_id
and fv.flex_value_set_id=1005546
and fvh.flex_value_set_id=1005546
and fv.flex_value=a_s.value
and a.account_d = '25003'
and p.chart_of_accounts_id = '50296'
and a.gl_date between to_date('01.06.2006','dd.mm.yyyy') and to_date('30.06.2006','dd.mm.yyyy')
and a_m.deb_kred like '%Д%'
and a_s.deb_kred(+) like '%Д%'
and a_m.analyse_attribute(+)='МВЗ'
and a_s.analyse_attribute(+)='Статья затрат'
and p.status!='DISABLED'
and (a_m.value=:MVZ or :MVZ is null)
and (a_s.value = :STATYA or :STATYA is null)
and fv.flex_value between fvh.child_flex_value_low and fvh.child_flex_value_high
and nvl(fv.end_date_active, sysdate) >= sysdate
and FV.enabled_flag = 'Y'
group by FV.FLEX_VALUE , FVH.Parent_FLEX_VALUE , FV.DESCRIPTION
union
select FV.FLEX_VALUE VALUE, 'par' Parent, FV.DESCRIPTION DESCRIPTION, 0 --sum(a.amount) summa
from fnd_flex_values_vl fv
where fv.flex_value_set_id=1005546
and nvl(fv.end_date_active, sysdate)>= sysdate
and FV.enabled_flag = 'Y'
group by FV.FLEX_VALUE , FV.DESCRIPTION ,'par')
connect by prior VALUE = Parent
start with parent = 'par' |
|
Dimasm
Зарегистрирован: 25.04.2005 Сообщения: 454
|
Добавлено: Чт Июл 19 2007 08:18 Заголовок сообщения: |
|
|
сложно разобраться в вашем запросе, выб с форматированием выложили, и структуру таблицы...
а вообще, я когда с деревьями работал, и надо было искать суммы по "разделам" писал процедуру...
во временную таблицу складывались все ID, которые дочерние для указанного родителя,
а потом условие
.... WHERE id IN (SELECT id FROM tmp_table)
и сумма по указанному родителю _________________ С уважением Dimasm |
|