select --&p_hint
distinct
user_name,
decode (
greatest (u.start_date,
ur.start_date,
r.start_date,
to_date ('1000-01-01', 'YYYY-MM-DD')),
to_date ('1000-01-01', 'YYYY-MM-DD'), '',
to_char (greatest (u.start_date, ur.start_date, r.start_date)))
resp_start_date,
decode (
least (nvl (u.end_date, to_date ('4712-01-01', 'YYYY-MM-DD')),
nvl (ur.end_date, to_date ('4712-01-01', 'YYYY-MM-DD')),
nvl (r.end_date, to_date ('4712-01-01', 'YYYY-MM-DD'))),
to_date ('4712-01-01', 'YYYY-MM-DD'), '',
to_char (
least (nvl (u.end_date, nvl (ur.end_date, r.end_date)),
nvl (ur.end_date, nvl (u.end_date, r.end_date)),
nvl (r.end_date, nvl (u.end_date, ur.end_date)))))
resp_end_date,
s.security_group_name
-- , u.description
, rt.responsibility_name,
rt.description
from fnd_user u,
fnd_user_resp_groups_all ur,
fnd_responsibility r,
fnd_security_groups_vl s,
fnd_responsibility_tl rt
where 1 = 1
and rt.responsibility_id = r.responsibility_id
and rt.application_id = r.application_id
--AND r.application_id = :application_id
-- and r.responsibility_id = :responsibility_id
and user_name = 'QUANWEIRU'
and ur.responsibility_application_id = r.application_id
and ur.responsibility_id = r.responsibility_id
and u.user_id = ur.user_id
and ur.security_group_id = s.security_group_id
order by user_name, security_group_name