A - 供应商表
B - 供应商汇总表
我需要一个适合这种情况的SQL查询。
如果我们在供应商汇总表中有数据显示SupplierId
和SupplierName
如果没有,请显示供应商表中的SupplierId
和SupplierName
。
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 (+)
这没有给出正确的结果。怎么做?
答案 0 :(得分:1)
如果我们在供应商汇总表中有数据显示
SupplierId
和SupplierName
。 如果没有,请显示供应商表中的SupplierId
和SupplierName
。
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