Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Mehrteilige Bezeichner konnte nicht gebunden werden

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von ukulele, 16 April 2012.

  1. ukulele

    ukulele Datenbank-Guru

    Ich stehe vor einem Problem und habe etwas den Überblick verloren. Ich versuche es mal anhand einer simplen n:m Beziehung zu erklären, der eigentliche SELECT umfasst mitlerweile 95 Zeilen und läuft mithilfe einer Variable, was mich daran hindert eine schöne Sicht daraus zu formen die mir gleich für alle Datensätze meiner Tabelle (nicht nur für den mit der ID der Variablen) die entsprechenden Informationen liefert. Aber der Reihe nach:

    Beispiel:
    Es existieren 2 Tabellen (Adressen und Personen) die per n:m Beziehung verknüpft sind, also mit einer Zwischentabelle. Ich kann folgende Abfrage natürlich problemlos laufen lassen:
    Code:
    SELECT    *
    FROM    ADRESSEN a,
            z_zwischentabelle z,
            PERSONEN p
    WHERE    a.SID_ADRESSEN = z.SID_ADRESSEN
    AND        z.SID_PERSONEN = p.SID_PERSONEN
    Ich muss die Abfrage aber umstellen und erweitern, was prinzipiell auch geht:
    Code:
    SELECT    *
    FROM    ADRESSEN a,
            (    SELECT    *
                FROM    zwischentabelle z,
                        PERSONEN p
                WHERE    z.SID_PERSONEN = p.SID_PERSONEN ) z
    WHERE    a.SID_ADRESSEN = z.SID_ADRESSEN
    Der Umbau erfolgt einzig aus dem Grund das ein GROUP BY genutzt werden soll um die Anzahl der Verknüpfungen weiter zu reichen:
    Code:
    SELECT    *
    FROM    ADRESSEN a,
            (    SELECT    z.SID_ADRESSEN,
                        count(*) AS Anzahl
                FROM    zwischentabelle z,
                        PERSONEN p
                WHERE    z.SID_PERSONEN = p.SID_PERSONEN
                GROUP BY z.SID_ADRESSEN ) z
    WHERE    a.SID_ADRESSEN = z.SID_ADRESSEN
    Um das gewünschte Ergebniss zu erzielen möchte ich mich aber innerhalb des 2ten SELECTs noch einer Prüfung auf eine Spalte des ersten SELECTs beziehen, z.B.:
    Code:
    SELECT    *
    FROM    ADRESSEN a,
            (    SELECT    z.jperson_fk,
                        count(*) AS Anzahl
                FROM    z_jperson_nperson z,
                        PERSONEN p
                WHERE    z.nperson_fk = p.SID_PERSONEN
                AND        z.jperson_fk = a.SID_ADRESSEN
                GROUP BY z.jperson_fk ) z
    WHERE    a.SID_ADRESSEN = z.jperson_fk
    Das ruft einen Fehler hervor (Mehrteilige Bezeichner konnte nicht gebunden werden) weil a.SID_ADRESSEN eben nur in der anderen Abfrage vorkommt. Ich würde die beiden ja auch gerne kombinieren aber aus meiner Sicht geht das nicht aufgrund von GROUP BY etc., vieleicht scheitere ich aber einfach am Umfang der original Abfrage :)
    Weiss jemand einen Workarround?
     
  2. ukulele

    ukulele Datenbank-Guru

    Ich musste es doch umstellen und das GROUP BY in den äußeren SELECT packen. Habe auch viel weniger Code aber leider viel zu viel Laufzeit für meine Idee :(

    Ich werde diese mal in einem neuen Thread vorstellen.
     
Die Seite wird geladen...
Ähnliche Themen - Mehrteilige Bezeichner konnte
  1. kpt.Unbrauchbar
    Antworten:
    2
    Aufrufe:
    456

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden