Запрос Oracle - больше результатов в таблице - PullRequest
0 голосов
/ 04 ноября 2018

Я хотел бы выбрать таблицу данных формы с дополнительными строками (030), и она должна содержать все возможные комбинации других столбцов

Например:

 Select * from table where row in ('010,'020','030')

comp       period       row       column        value
1          30.06.2017   010       020           500
1          30.06.2017   020       020           300
2          30.06.2017   010       020           400
3          30.06.2017   020       020           100

И результаты должны быть такими

comp       period       row       column        value
1          30.06.2017   010       020           500
1          30.06.2017   020       020           300
2          30.06.2017   010       020           400
2          30.06.2017   020       020           (null)
3          30.06.2017   020       020           100
3          30.06.2017   010       020           (null)
1          30.06.2017   030       020           (null)
2          30.06.2017   030       020           (null)
3          30.06.2017   030       020           (null)

1 Ответ

0 голосов
/ 04 ноября 2018

Используйте cross join для генерации строк и затем left join для ввода текущих результатов. Я думаю, что вы хотите:

Select cpr.*, r.row, t.value
from (select distinct comp, period, column from t) cpr cross join
     (select '010' as row from dual union all
      select '020' as row from dual union all
      select '030' as row from dual 
     ) r left join
     t
     on t.comp = cpr.comp and t.period = cpr.period and t.column = cpr.column and t.row = cpr.row;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...