J'essaie de joindre ces deux tables ensemble pour montrer l'enregistrement dans la base et la null dans l'histoire. Le problème que j'ai est avec une jointure externe gauche. quand BO.val2 = 0: Je veux que la jointure utilise BO.VAL5 = TR.VAL5 seulement mais quand BO.val2 = TR.val2 je veux l'utiliser pour la jointure. Le code ci-dessous est une idée juste. Si vous avez des suggestions sur la façon de faire cela, ce serait génial!SQL: Left Outer rejoindre qui peut changer les colonnes à se joindre en fonction des données à l'intérieur de la colonne
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 ;
merci vladimir! –
@BeauJenkins, Bienvenue dans Stack Overflow. S'il vous plaît noter que la façon préférée de dire «merci» ici est par de bonnes questions et des réponses utiles (une fois que vous avez assez de réputation pour le faire), et en acceptant la réponse la plus utile à toute question (qui vous donne également un petit coup de pouce à votre réputation). Veuillez consulter la page [A propos de] et [Comment poser des questions ici?] (Http://stackoverflow.com/help/how-to-ask) –