SQL и OIM - запрос роли пользователя - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь построить запрос, но теряюсь в одном. Мне нужно построить столбец, который выводит true или false в зависимости от того, что выводит другой запрос. Проблема, с которой я столкнулся, заключается в том, что у другого запроса есть выходная ценность таблицы. Все, что мне нужно из этого запроса, это то, что если он что-то возвращает, то будет true, иначе false.

Если это поможет, я работаю с базой данных OIM Oracle Ниже приведен запрос перед любыми изменениями, которые мне нужно внести. , Это выводит список пользователей, которые были названы в течение последних 7 дней.

select usr_login as "User Login", usr_emp_no as "Employee Number", usr_first_name as "First Name", usr_last_name as "Last Name", usr_status as "User Status", 
  to_char(USR_AUTOMATICALLY_DELETE_ON, 'MM/DD/YYYY') USR_AUTOMATICALLY_DELETE_ON, 
  to_char(usr_end_date, 'MM/DD/YYYY') usr_end_date,
  USR_DISPLAY_NAME,
  act.act_name as "Organization Name",
  USR_UDF_PS_EMPL_STATUS as "Employee Status"
from usr, act
where usr_end_date >= to_date(to_char(sysdate - interval '8' day, 'MM/DD/YYYY'), 'MM/DD/YYYY')
  and usr_end_date <= to_date(to_char(sysdate - interval '1' day, 'MM/DD/YYYY'), 'MM/DD/YYYY')
  and usr.act_key = act.act_key
order by usr_end_date, usr_login;

Для каждого из этих пользователей мне нужен столбец, в котором он находится для возврата на основе этого пользователя. Поэтому, если у одного пользователя есть роль, верните true, а следующий пользователь без ролей вернет false.

Если нет лучшего способа, я пытаюсь использовать этот запрос, чтобы вернуть истину или ложь:

define usr_login = '&usr_login'
select ugp.ugp_name, ugp.ugp_key, usr.usr_key, usr.usr_login, usr.usr_status
from usg, ugp, usr
where usr.usr_key = usg.usr_key and ugp.ugp_key = usg.ugp_key and
    upper(usr.usr_login) = upper('&usr_login')
    and ugp.ugp_name != 'ALL_USERS' -- I need to exclude the role "All Users"
order by usr.usr_status, ugp.ugp_name, usr.usr_login, usr.usr_status;

Ход мысли, над которым я работаю, таков:

(NVL((select usr_login from usr where usr_login=UPPER('non-existantValue')),'False')) as "dumb", --Working if null(expression,ifnull, do this)This outputs as false

Но я очень открыт для предложений.

Чтобы сделать это более сложным, мне действительно нужно, чтобы это работало с использованием второго запроса выше. Если у пользователя есть роль, верните true. Если пользователь этого не делает, верните false.

Примечание: я работаю в Oracle SQL Разработчик

Любая помощь или предложения? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...