hallo,
hab ein Problem mit einer SQL-Afrage unter Oracle. Ich habe eine SQL-Anweisung unter Access mit einem Inner Join und einem Left Join erstellt. Da Oracle aber leider erst am Version9 Joins unterstützt, mußte ich die Anweisung umschreiben. Der Inner Join ist auch kein Problem, aber der Left Join. Vielleicht hat ja jemand nen heißen Tipp.
ACCESS:
SELECT DISTINCT SCOTT_FACHUMFANG02.SEM, SCOTT_FACH02.LFDNR, SCOTT_FACH02.NAME, SCOTT_FACHUMFANG02.MKUERZEL, SCOTT_MODUL02.VL, SCOTT_MODUL02.UB, SCOTT_MODUL02.PR, SCOTT_PRUEFUNGSNACHWEIS02.PRUEFKZ
FROM SCOTT_MODUL02 INNER JOIN (SCOTT_FACH02 INNER JOIN (SCOTT_FACHUMFANG02 LEFT JOIN SCOTT_PRUEFUNGSNACHWEIS02 ON (SCOTT_FACHUMFANG02.SEM = SCOTT_PRUEFUNGSNACHWEIS02.SEM) AND (SCOTT_FACHUMFANG02.LFDNR = SCOTT_PRUEFUNGSNACHWEIS02.LFDNR) AND (SCOTT_FACHUMFANG02.SKUERZEL = SCOTT_PRUEFUNGSNACHWEIS02.SKUERZEL)) ON SCOTT_FACH02.LFDNR = SCOTT_FACHUMFANG02.LFDNR) ON SCOTT_MODUL02.MKUERZEL = SCOTT_FACHUMFANG02.MKUERZEL
WHERE (((SCOTT_FACH02.SKUERZEL)=„AII“) AND ((SCOTT_FACHUMFANG02.SKUERZEL)=„AII“))
ORDER BY SCOTT_FACH02.LFDNR;
ORACLE:
SELECT DISTINCT SCOTT_FACHUMFANG02.SEM, SCOTT_FACH02.LFDNR, SCOTT_FACH02.NAME, SCOTT_FACHUMFANG02.MKUERZEL, SCOTT_MODUL02.VL, SCOTT_MODUL02.UB, SCOTT_MODUL02.PR, SCOTT_PRUEFUNGSNACHWEIS02.PRUEFKZ
FROM SCOTT_MODUL02, SCOTT_FACH02,
( SELECT * FROM SCOTT_FACHUMFANG02, SCOTT_PRUEFUNGSNACHWEIS02 WHERE (SCOTT_FACHUMFANG02.SEM = SCOTT_PRUEFUNGSNACHWEIS02.SEM(+)) AND (SCOTT_FACHUMFANG02.LFDNR = SCOTT_PRUEFUNGSNACHWEIS02.LFDNR(+)) AND (SCOTT_FACHUMFANG02.SKUERZEL = SCOTT_PRUEFUNGSNACHWEIS02.SKUERZEL(+)))
WHERE (((SCOTT_FACH02.LFDNR)=[SCOTT_FACHUMFANG02].[LFDNR]) AND ((SCOTT_MODUL02.MKUERZEL)=[SCOTT_FACHUMFANG02].[MKUERZEL]) AND ((SCOTT_FACH02.SKUERZEL)=„AII“) AND ((SCOTT_FACHUMFANG02.SKUERZEL)=„AII“))
ORDER BY SCOTT_FACH02.LFDNR;