Announcement

Collapse
No announcement yet.

SQL Statement

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

  • SQL Statement

    Hallo ich möchte dieses SQL-Statement auf einer Oracle Datenbank (10g) ausführen

    Code:
    SELECT selektion.kndnr, kdtitel, xkundenadresse.vorname1, xkundenadresse.nachname2 
    FROM xkundenadresse, selektion, 
    ( SELECT CONCAT(titel,"-") AS kdtitel, kndnrart FROM xkundentitel GROUP BY kndnrart) AS querytitel 
    WHERE slektion.werbecode = 221000 AND 
    querytitel.kndnrart = xkundenadresse.kndnrart AND 
    selektion.kndnr = xkundenadresse.kndnrart AND 
    xkundenadresse.adrart = "H"
    und bekomme dann diese Fehlermeldung

    SQLException (933): ORA-00933: SQL-Befehl wurde nicht korrekt beendet

  • #2
    Abfrage sieht komisch aus. Was willst du abfragen?
    Vielleicht so?
    [highlight="sql"]
    SELECT
    selektion.kndnr,
    ( SELECT CONCAT(titel,"-") AS kdtitel, kndnrart FROM xkundentitel GROUP BY kndnrart) AS querytitel
    WHERE slektion.werbecode = 221000 AND
    querytitel.kndnrart = xkundenadresse.kndnrart AND
    selektion.kndnr = xkundenadresse.kndnrart AND
    xkundenadresse.adrart = "H") as kdtitel,
    xkundenadresse.vorname1, xkundenadresse.nachname2
    FROM
    xkundenadresse, selektion;
    [/highlight]
    Wobei die Join-Bedingung zwischen xkundenadresse und selektion fehlt.

    Comment


    • #3
      ich möchte alle Kunden die in der Selektion bei Werbecode 221000 stehen haben, zu diesen Kunden möchte den Vor- und Nachname haben zusätzlich aus der Tabelle xkundentitel noch den titel1 (wobei hier für jeden Kunden bis zu 9 Titel vorhanden sein können). Deshalb möchte cih alle Kundentitel in kdtitel zusammenfassen damit ich später im ResultSet für jeden Kunden nur eine Spalte brauche.

      Code:
       SELECT selektion.kndnr, 
      ( SELECT CONCAT(titel1,"-") AS kdtitel, kndnrart FROM xkundentitel GROUP BY kndnrart) AS querytitel 
      WHERE slektion.werbecode = 221000 AND querytitel.kndnrart = xkundenadresse.kndnrart AND selektion.kndnr = xkundenadresse.kndnr AND xkundenadresse.adrart = 'H', 
      xkundenadresse.vorname1, xkundenadresse.nachname2 
      FROM xkundenadresse, selektion
      SQLException (923): ORA-00923: Schlüsselwort FROM nicht an erwarteter Stelle gefunden

      Comment


      • #4
        Wie sehen die Beziehungen der Tabellen aus?
        [highlight="sql"]
        SELECT
        selektion.kndnr,
        ( SELECT CONCAT(titel,"-") AS kdtitel, kndnrart FROM xkundentitel GROUP BY kndnrart) AS querytitel,
        xkundenadresse.vorname1,
        xkundenadresse.nachname2
        FROM
        xkundenadresse, selektion
        WHERE
        selektion.werbecode = 221000 AND
        querytitel.kndnrart = xkundenadresse.kndnrart AND
        selektion.kndnr = xkundenadresse.kndnrart AND
        xkundenadresse.adrart = "H";
        [/highlight]

        Comment


        • #5
          selektion und xkundenadresse sind über die kndnr verknüpft, xkundenadresse und xkundentitel sind über kndnrart verknüpft.

          zu jedem satz der xkundenadresse kann es bis zu 9 Datensätze in der xkundentitel geben.

          zu jedem selektionssatz kann es nur eine kundenadresse geben.

          Comment


          • #6
            Code:
             SELECT selektion.kndnr, 
            ( SELECT CONCAT(titel1,"-") AS kdtitel, kndnrart FROM xkundentitel GROUP BY kndnrart) AS querytitel, 
            xkundenadresse.vorname1, xkundenadresse.nachname2 
            FROM xkundenadresse, selektion 
            WHERE slektion.werbecode = 221000 AND 
            querytitel.kndnrart = xkundenadresse.kndnrart AND 
            selektion.kndnr = xkundenadresse.kndnr AND 
            xkundenadresse.adrart = 'H'
            SQLException (904): ORA-00904: "QUERYTITEL"."KNDNRART": ungültiger Bezeichner

            Comment


            • #7
              Querytitel ist auch ein Feld und keine Tabelle.
              [highlight="sql"]
              SELECT
              selektion.kndnr,
              (
              SELECT
              CONCAT(titel,"-") AS kdtitel
              FROM
              xkundentitel
              WHERE
              kndnrart = xkundenadresse.kndnrart
              GROUP BY
              kndnrart
              ) AS querytitel,
              xkundenadresse.vorname1,
              xkundenadresse.nachname2
              FROM
              xkundenadresse, selektion
              WHERE
              selektion.werbecode = 221000 AND
              selektion.kndnr = xkundenadresse.kndnrart AND
              xkundenadresse.adrart = "H";
              [/highlight]
              BTW. Wenn du Codehihhlighting verwenden würdest, wäre das Ganze lesbarer

              Comment

              Working...
              X