私はいくつかの結合でクエリを持っています。結合の1つは別の値に依存します。WHERE句のSQL Serverのケース
これは私のクエリです:
SELECT *
FROM CLIIRE A
LEFT JOIN CLIIOR B ON A.PTA = B.PTA AND A.ORD = B.ORD AND A.ITE = B.ITE
LEFT JOIN CLIORD C ON C.PTA = B.PTA AND C.ORD = B.ORD
LEFT JOIN CLIPAC D ON C.OPA = D.ORI AND C.PAC = D.PAC
LEFT JOIN CLIREN E ON E.NRE = A.NRE AND D.INS = E.INS AND A.CPT = E.CPT
LEFT JOIN
(SELECT *
FROM CLINOM
WHERE CLA = (CASE WHEN B.PFA = '88882' THEN 'MD' ELSE 'BU' END)) AS N ON B.PFA = N.COD
LEFT JOIN
(SELECT *
FROM CLIMED WHERE PRE = '') AS M ON B.PFA = M.MED
LEFT JOIN CLIPRF P ON B.PRF = P.PRF
WHERE
(D.INS LIKE 'OM%' OR D.INS LIKE 'SOL%')
AND E.NFA IN ('5188')
AND A.CPT IN ('fi', 'pi')
ORDER BY
E.NFA
しかし、私はラインでのエラーを取得しています:SQL Serverは、私はそれを行うことを許可しませんように
LEFT JOIN (SELECT * FROM CLINOM WHERE CLA = (CASE WHEN B.PFA = '88882' THEN 'MD' ELSE 'BU' END)) AS N ON B.PFA=N.COD
はルックス:
複数パート識別子「B.PFA」はバインドできませんでした
カラムB.PFAが存在します。
誰でも手伝ってもらえますか?ありがとう!
LEFT JOINで問題が発生している場合は、OUTER APPLYに変更します。B.PFAが存在する限り、B.PFAをサブクエリに送信できます。-B.PFA = N.CODに入るサブクエリのWHERE – Cato