1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| with pmb as ( ...
)
, cur as ( ...
)
, proj as ( ...
)
SELECT DISTINCT proj.pid, proj.wbs_short_name, proj.wbs_name, pmb.obs_id, o.obs_name res , buResp.obs_name bu
, first_value(pmb.base_type) OVER (PARTITION BY pmb.orig_proj_id ORDER BY pmb.add_date DESC) pmbType
, first_value(pmb.wbs_id) OVER (PARTITION BY pmb.orig_proj_id ORDER BY pmb.add_date DESC) PMB
, ...
FROM proj LEFT JOIN pmb ON proj.pid = pmb.orig_proj_id
LEFT JOIN cur ON proj.pid = cur.orig_proj_id
JOIN privuser.project p ON proj.pid = p.proj_id
JOIN privuser.obs o ON pmb.obs_id = o.obs_id
LEFT JOIN (
SELECT obs_id, obs_name
FROM (
select obs_id, obs_name, level l
from privuser.obs, pmb mypmb
start with obs_id = mypmb.obs_id
connect by prior parent_obs_id = obs_id),
(
select max(level) m
from privuser.obs, pmb mypmb
start with obs_id = mypmb.obs_id
connect by prior parent_obs_id = obs_id)
WHERE l = m-3) buResp ON buResp.obs_id = pmb.obs_id
WHERE p.project_flag='Y' |
Partager