You could also try
select
inv_investments.id,
inv_investments.name,
inv_investments.code,
prj_obs_types.id Type_id,
PRJ_obs_types.unique_name Type_unique,
PRJ_obs_types.name OBS_type_name,
prj_obs_units.ID OBS_ID,
prj_obs_units.Unique_name OBS_unique,
prj_obs_units.name OBS_name,
OBS_path.OBS_full_PATH
from
inv_investments,
prj_obs_units,
prj_obs_associations,
prj_obs_types,
(SELECT
prj_obs_types.name OBS_type_nAME,
(
ISNULL(Parent10.name,'') + ISNULL(Parent9.name + '/','') + ISNULL(Parent8.name+'/' ,'') + ISNULL(Parent7.name + '/','') +
ISNULL(Parent6.name + '/','') ISNULL(Parent5.name '/','') + ISNULL(Parent4.name + '/','') + ISNULL(Parent3.name + '/','') +
ISNULL(Parent2.name + '/','') + ISNULL(Parent1.name + '/','') + prj_obs_units.name) OBS_full_PATH, prj_obs_units.id OBS_unit_id
from
prj_obs_types,
prj_obs_units left join prj_obs_units Parent1 on prj_obs_units.parent_id=Parent1.id
left join prj_obs_units Parent2 on Parent1.parent_id=Parent2.id
left join prj_obs_units Parent3 on Parent2.parent_id=Parent3.id
left join prj_obs_units Parent4 on Parent3.parent_id=Parent4.id
left join prj_obs_units Parent5 on Parent4.parent_id=Parent5.id
left join prj_obs_units Parent6 on Parent5.parent_id=Parent6.id
left join prj_obs_units Parent7 on Parent6.parent_id=Parent7.id
left join prj_obs_units Parent8 on Parent7.parent_id=Parent8.id
left join prj_obs_units Parent9 on Parent8.parent_id=Parent9.id
left join prj_obs_units Parent10 on Parent9.parent_id=Parent10.id
where
prj_OBS_units.type_id=prj_obs_types.id
) as OBS_path
where
prj_obs_associations.record_id=inv_investments.id
AND prj_obs_associations.UNIT_ID=prj_obs_units.id
and prj_obs_associations.table_name= 'SRM_PROJECTS'
and prj_obs_types.id=prj_obs_units.type_id
and OBS_path.OBS_unit_id=prj_obs_units.id
and OBS_path.OBS_type_nAME=PRJ_obs_types.name
Order by PRJ_obs_types.unique_name, OBS_ID desc, inv_investments.name
The challenge with the functions is that they are not in tech ref and you have to go to the database to explore.
Martti K.