我正在尝试将这两个表连接在一起以显示基数中的记录和历史中的空值。我遇到的问题是左外连接。当 BO.val2 = 0 时:我希望连接仅使用 BO.VAL5 = TR.VAL5 但是当 BO.val2 = TR.val2 我希望它使用它来连接。下面的代码只是一个想法。如果您对如何执行此操作有任何建议,那就太好了!
SELECT DISTINCT
BO.RUN_DATE,
BO.val2,
BO.val3,
BO.val4,
BO.VAL5
TR.DTDATE,
TR.val2,
TR.val3,
TR.val4,
TR.val5
FROM BASE BO
LEFT OUTER JOIN HISTORY AS TR ON CASE
WHEN BO.val2 = 0 and BO.VAL5 = TR.VAL5 THEN ????
WHEN BO.val2 = TR.val2 and BO.VAL5 = TR.VAL5 then ???
ELSE ??
END
WHERE TRUNC(BO.POST_DATE)= TRUNC(SYSDATE)
ORDER BY BO.VAL4 ;