マイ(省略)コードは次のとおりです。LEFTは、DB2に登録しよう
SELECT *
FROM
ASSESSMENT A
LEFT JOIN FINANCE F0
ON F0.CLIENT = A.CLIENT
AND F0.FIELD_CODE = 1
AND F0.EVNT_SQNBR =
(SELECT MAX(FX.EVNT_SQNBR)
FROM
FINANCE FX, CROSSREF Y
WHERE
Y.CLIENT = A.CLIENT
AND Y.ASMT_TCD = A.ASMT_TCD
AND Y.ASMT_TY_SQNBR = A.ASMT_TY_SQNBR
AND FX.CLIENT_ID = A.CLIENT
AND FX.FIELD_CODE = F0.FIELD_CODE
AND FX.BUS_LN_SQNBR = F0.BUS_LN_SQNBR
AND FX.EVNT_SQNBR = Y.EVNT_SQNBR)
LEFT JOIN FINANCE F1 (SAME CODE HERE EXCEPT F1.FIELD_CODE IS DIFFERENT)
...
LEFT JOIN FINANCE F2 (SAME CODE HERE EXCEPT F2.FIELD_CODE IS DIFFERENT)
のように。
質問は、-338 ON句が無効であることを示していますか? AND F0.EVNT_SQNBR = ...で始まるすべての行(含む)に対して
なぜ、どのように修正するのですか?
。それを 'WHERE'節に移動することを検討してください。 – mustaccio
WHERE句に移動すると暗黙のINNER JOINになりませんか? OUTER JOINが必要です。 – Ardia
それはあなたがそれを行うかどうかに依存します。他にどんなオプションがありますか? – mustaccio