select
g.area_id
g.area
g.area_code
g.analytic_code
a.abstract_service_id
a.abstract_service
a.code as abstract_service_code
s.service_id
m.modifier
m.code as modifier_code
ac.abstract_service_param_class_id
pc.param_class_id
pc.param_class
ac.is_multiple
sp.service_param_id
p.param_id
p.param
p.param_short
p.code as param_code
from area g
left outer join abstract_service a on (g.area_id=a.area_id)
left outer join service s on (a.abstract_service_id=s.abstract_service_id)
left outer join modifier m on (s.modifier_id=m.modifier_id)
left outer join abstract_service_param_class ac on (a.abstract_service_id=ac.abstract_service_id)
left outer join param_class pc on (ac.param_class_id=pc.param_class_id)
left outer join service_param sp on (s.service_id=sp.service_id AND ac.abstract_service_param_class_id=sp.abstract_service_param_class_id)
left outer join param p on (sp.param_id=p.param_id)
where 1=1
order by g.analytic_code, a.code, m.code, s.service_id, ac.abstract_service_param_class_id, p.sort, p.code, p.param_id
select count(*) as cnt from param where 1=1
Дерево каталога