Announcement

Collapse
No announcement yet.

Problem mit left outer join

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit left outer join

    Mache gerade einen Abgleich von 3 Tabellen und benötige da einen left outer join.
    Der sollte auch eig. richtig sein, ich bekomme aber immer den Fehler, das der SQL-Befehl nicht korrekt beendet wird. ORA-00933

    Ich kann aber keinen Fehler feststellen
    Code:
    SELECT DU.REPORT, DU.PARAMETER, SUBSTR(DU.PARAMETER,24,6) PAR_NR,
           SUBSTR(DU.PARAMETER,31) PAR_KFZ, DU.DATANL Anlagedatum_RVS,
           DU.DRUAUFSTNR Status_RVS, DU04.DATANL Anlagedatum_CPS04,
           DU04.DRUAUFSTNR Status_CPS04, DU05.DATANL Anlagedatum_CPS05,
           DU05.DRUAUFSTNR Status_CPS05
      FROM GDURVS.PSIDRUAUFTRAG DU
           LEFT OUTER JOIN GDURVS.PSIDRUAUFTRAG@GDUCPS04 DU04
           ON DU.PARAMETER = DU04.PARAMETER
           LEFT OUTER JOIN GDURVS.PSIDRUAUFTRAG@GDUCPS05 DU05
           ON DU.PARAMETER = DU05.PARAMETER
     WHERE DU.DATANL BETWEEN SYSDATE - 1 AND SYSDATE
    ORDER BY DU.DATANL DESC

  • #2
    Muss die ON-Klausel nicht geklammert?
    Und darfst du den Alias in "DU.PARAMETER" noch verwenden wenn du das Feld in der ON-Klausel verwendest oder gilt das nur für USING (ORA-25155) ?

    Comment


    • #3
      @uminky
      USING:
      ohne Aliasnamen verwenden
      ON:
      hier sind Aliasnamen erlaubt
      Klammern müssen nicht geschrieben werden


      Versuch doch mal, die Anweisung in einzelnen Schritten auszuführen:

      Beispiel:
      Code:
      SELECT DU.REPORT
        FROM GDURVS.PSIDRUAUFTRAG DU
             LEFT OUTER JOIN GDURVS.PSIDRUAUFTRAG@GDUCPS04 DU04
             ON DU.PARAMETER = DU04.PARAMETER;
      Funktioniert denn dieses Beispiel?

      kuemmelchen

      Comment


      • #4
        nein auch nicht, er meckert immer an dem join.
        Habs mal anders aufgebaut.
        Code:
        SELECT DU.REPORT, DU.PARAMETER, SUBSTR(DU.PARAMETER,24,6) PAR_NR,
               SUBSTR (DU.PARAMETER,31) PAR_KFZ, DU.DATANL Anlagedatum_RVS,
               DU.DRUAUFSTNR Status_RVS, DU04.DATANL Anlagedatum_CPS04,
               DU04.DRUAUFSTNR Status_CPS04, DU05.DATANL Anlagedatum_CPS05,
               DU05.DRUAUFSTNR Status_CPS05
          FROM GDURVS.PSIDRUAUFTRAG DU, GDURVS.PSIDRUAUFTRAG@GDUCPS04 DU04,
               GDURVS.PSIDRUAUFTRAG@GDUCPS05 DU05
         WHERE DU.PARAMETER = DU04.PARAMETER (+)
           AND DU.PARAMETER = DU05.PARAMETER (+)
           AND DU.DATANL BETWEEN SYSDATE - 1 AND SYSDATE
        ORDER BY DU.DATANL DESC
        So klappt es, aber so sollte es nicht geschrieben sein. :\

        Comment


        • #5
          Hallo,
          Originally posted by signature88 View Post
          ...So klappt es, aber so sollte es nicht geschrieben sein. :\
          Die Verwendung der ANSI-Join-Syntax wird in Oracle erst ab 9i unterstützt, verwendest du ggfs. noch eine 8er Version?

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X