【发布时间】:2017-12-18 06:07:58
【问题描述】:
ORG_ITEM 表包含重复的 ID。这些 ID 显示相同 ID 的不同 MFR 和 PART_NO。这导致我的查询返回具有相同 ID 的多行。如何将这些行放入一行中,每个 MFR 和 PART_NO 作为单独的列?
SELECT
PART_LOC.CLASS,
PART_LOC.ID,
ORG.MFR,
ORG_ITEM.PART_NO,
PART_LOC.STORAGE_LOC,
PART_LOG.QTY,
COST.UNIT_COST
FROM
PART_LOC
LEFT JOIN COST on PART_LOC.ID = COST.ID
LEFT JOIN ORG_ITEM on PART_LOC.ID = ORG_ITEM.ID
LEFT JOIN ORG on ORG_ITEM.MFR = ORG.MFR
WHERE
PART_LOC.STORAGE_LOG = :Facility
目前返回:
CLASS ID MFR PART_NO STORAGE_LOC QTY COST
3 1234 Grainger 123F6 CRIB 6 12.67
3 1234 Hagerty asd45 CRIB 6 12.67
3 1234 MSC poi98 CRIB 6 12.67
希望它返回:
CLASS ID MFR-PART_NO1 MFR-PART_NO2 MFR-PART_NO3 STORAGE_LOC QTY COST
3 1234 Grainger-123F6 Hagerty-asd45 MSC-poi98 CRIB 6 12.67
【问题讨论】:
-
使用rextester.com/l/oracle_online_compiler 然后用 cmets 在底部添加寻找。然后重新发布链接。设置一个包含一些数据的表
-
不是每个人都可以访问外部图片网站:如果您发布屏幕截图而不是输入文本,您可能会减少可以帮助您的人数。虽然在这种情况下没关系,因为这个问题是一个老栗子。请搜索
oracle + pivot,你会找到对你有帮助的东西 -
我能够重新编辑并将链接转换为图像。 @Brco 了解它也插入图像的编辑器...
-
@JGFMK 已编辑以删除图像插入。
-
如果事先不知道制造商的数量,你不能用标准的SQL来做到这一点。您可以使用动态 SQL,这完全不同(尽管名称不同)并且通常被认为是一种糟糕的做法。为什么需要这种格式的结果?您当前的输出有什么问题?
标签: sql oracle multiple-results