首页 > 解决方案 > SQL Join - 给我多个值

问题描述

我正在尝试获取 LINE_NO 的唯一值。我试图了解代码中有什么问题。

SELECT SHIPMENT_TAB.PLANNED_SHIP_DATE, SHIPMENT_TAB.SHIP_VIA_CODE, SHIPMENT_TAB.RECEIVER_ADDR_ID, SHIPMENT_TAB.RECEIVER_ADDRESS_NAME, SHIPMENT_TAB.SHIPMENT_ID, SHIPMENT_TAB.RECEIVER_ID,
SHIPMENT_TAB.RECEIVER_COUNTRY, SHIPMENT_TAB.RECEIVER_ADDRESS1, SHIPMENT_TAB.RECEIVER_ADDRESS2, SHIPMENT_TAB.RECEIVER_CITY, SHIPMENT_TAB.RECEIVER_STATE, SHIPMENT_TAB.RECEIVER_ZIP_CODE,
SHIPMENT_LINE_TAB.SOURCE_REF1, SHIPMENT_LINE_TAB.SOURCE_PART_NO, SHIPMENT_LINE_TAB.CONNECTED_SOURCE_QTY, SHIPMENT_LINE_TAB.SOURCE_UNIT_MEAS,
CUSTOMER_ORDER_TAB.CUSTOMER_PO_NO, CUSTOMER_ORDER_TAB.AUTHORIZE_CODE, CUSTOMER_ORDER_LINE_TAB.ORDER_NO, CUSTOMER_ORDER_LINE_TAB.LINE_NO, TI_PART_EXT_CLV.CF$_PATTERN_SHADE,
TI_PART_EXT_CLV.CF$_PART_NO, TI_PART_EXT_CLV.CF$_STYLE_NO, TI_PART_EXT_CLV.CF$_FINISHED_WIDTH, part_catalog_tab.description
from SHIPMENT_TAB join SHIPMENT_LINE_TAB on SHIPMENT_TAB.SHIPMENT_ID = SHIPMENT_LINE_TAB.SHIPMENT_ID 
JOIN CUSTOMER_ORDER_TAB on SHIPMENT_LINE_TAB.SOURCE_REF1 = CUSTOMER_ORDER_TAB.ORDER_NO
JOIN CUSTOMER_ORDER_LINE_TAB on CUSTOMER_ORDER_LINE_TAB.ORDER_NO = CUSTOMER_ORDER_TAB.ORDER_NO
JOIN TI_PART_EXT_CLV on TI_PART_EXT_CLV.CF$_PART_NO = CUSTOMER_ORDER_LINE_TAB.PART_NO
JOIN PART_CATALOG_TAB on PART_CATALOG_TAB.PART_NO = TI_PART_EXT_CLV.CF$_PART_NO
WHERE SHIPMENT_TAB.SHIPMENT_ID = 42;

这段代码应该给我 3 个值的输出。基于 SHIPMENT_LINE TAB.SHIPMENT_LINE_NO 即 1、4、2。

但我得到 1,1,1,2,2,2,4,4,4。得到 9 表明它没有给我确切的 3 行作为输出。

标签: sqloracle-sqldeveloper

解决方案


推荐阅读