从一列中选择值并在两列中显示

时间:2020-01-29 11:19:44

标签: sql oracle

我很想尝试一种方法来显示两列中的一列数据。数据是Oracle中的物料清单,我想在第二栏中显示物料清单中的某些项目。

例如,我有一个主项目是123ABC。在此项目中,它具有以下项目... 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 :(得分:0)

您的数据必须具有某种父项列。您可以使用它来进行自我加入:

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