获取供应商详细信息的单个SQL查询

时间:2015-07-28 07:28:34

标签: sql oracle

A - 供应商表
B - 供应商汇总表

我需要一个适合这种情况的SQL查询。

如果我们在供应商汇总表中有数据显示SupplierIdSupplierName 如果没有,请显示供应商表中的SupplierIdSupplierName

SELECT A.SUPPLIER_ID,B.SUPPLIER_ID
    FROM BIZZXE_V2_SCH.SUPPLIERS A,
        (SELECT * FROM BIZZXE_V2_SCH.SUPPLIER_SUMMARY WHERE SUPPLIER_ID = 20)B
    WHERE  B.SUPPLIER_ID   = A.SUPPLIER_ID (+)

这没有给出正确的结果。怎么做?

2 个答案:

答案 0 :(得分:1)

  

如果我们在供应商汇总表中有数据显示SupplierIdSupplierName。    如果没有,请显示供应商表中的SupplierIdSupplierName

SELECT COALESCE( B.SUPPLIER_ID, A.SUPPLIER_ID ) AS SUPPLIER_ID,
       COALESCE( B.SUPPLIER_NAME, A.SUPPLIER_NAME ) AS SUPPLIER_NAME
FROM   BIZZXE_V2_SCH.SUPPLIERS A
       LEFT OUTER JOIN
       BIZZXE_V2_SCH.SUPPLIER_SUMMARY B
       ON ( A.SUPPLIER_ID   = B.SUPPLIER_ID )
WHERE  A.SUPPLIER_ID = 20;

答案 1 :(得分:0)

你能试试吗?

SELECT A.SUPPLIER_ID,COALESCE(B.SUPPLIER_ID,A.SUPPLIER_ID)
FROM BIZZXE_V2_SCH.SUPPLIERS A LEFT JOIN BIZZXE_V2_SCH.SUPPLIER_SUMMARY B on
B.SUPPLIER_ID   = A.SUPPLIER_ID AND SUPPLIER_ID = 20