Выберите значения из одного столбца и отобразите в двух столбцах - PullRequest
0 голосов
/ 29 января 2020

Я в тупике, пытаясь найти способ отображения данных из одного столбца в двух разных столбцах. Данные представляют собой ведомость материалов в Oracle, и я хочу отобразить определенные позиции в ведомости материалов во втором столбце.

Например, у меня есть основной товар, который имеет значение 123AB C. Внутри этого предмета есть следующие предметы ... AA1, BB1, CC1. Все они принадлежат одному столбцу в одной и той же таблице.

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

Master Item  |  Sub Item
-------------------------
123ABC       |  AA1

Пока у меня есть следующее ...

 select distinct msi.item FNUMBER
 ,       msi.description DESCRIPTION
 , (select msi1.item
 FROM inv.mtl_sys_item msi1 
 WHERE msi1.item = msi.item)
 from
 ,      .mtl_sys_item  msi
 where msi.segment1 = '123ABC'   
 order by 1 desc      

Но это просто отображает основной элемент 'ABC123' в оба столбца вместо AA1 во втором столбце.

1 Ответ

0 голосов
/ 29 января 2020

У ваших данных должен быть какой-то столбец родительского элемента. Вы можете использовать это для самостоятельного объединения:

SELECT msi.item as FNUMBER,
       msi.description as DESCRIPTION,
       msic.item
FROM inv.mtl_sys_item msi JOIN
     inv.mtl_sys_item msic
     ON msi.item = msic.parent_item  -- guessing at the column name
WHERE msi.segment1 = '123ABC'   
ORDER BY 1 desc   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...