Как группировать без агрегатов? - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь отредактировать свой sql так, чтобы он показывал столбцы gl_name, bu_name и gl_name2 на основе столбца role_name.Я не могу сделать группу, потому что у меня нет совокупности.Каков наилучший способ сделать это?Вот результаты сейчас:

enter image description here

Мой желаемый результат будет одна строка, которая объединяет все вместе, как это:

enter image description here

Мой sql сейчас:

select
pu.username,
role.ROLE_NAME,
gl.name gl_name,
bu.bu_name bu_name,
led.NAME gl_name2
from 
FUN_USER_ROLE_DATA_ASGNMNTS role,
gl_access_sets gl,
per_users pu,
FUN_ALL_BUSINESS_UNITS_V bu,
GL_LEDGERS led
where gl.ACCESS_SET_ID (+)= role.ACCESS_SET_ID 
and role.org_id = bu.bu_id (+)
and role.LEDGER_ID = led.LEDGER_ID (+)
and pu.USER_GUID = role.USER_GUID (+)
and role.role_name IS NOT NULL
and (gl.name IS NOT NULL or bu_name IS NOT NULL or led.name IS NOT NULL)
order by pu.username, role.role_name

1 Ответ

2 голосов
/ 14 марта 2019

Если я хорошо понимаю, вам может понадобиться это:

select username, role_name, max(gl_name), max(bu_name), max(gl_name2)
from 
     ...
group by username, role_name
order by username, role_name
...