0 Daumen
342 Aufrufe

Frage:

Es sollen alle Paare von Dozenten mit gleichem Vorname aus einer Tabelle (DOZENT) gefunden werden.

Ausgegeben werden sollen anschließend (alphabetisch) die Dozentennummern (D_NR) und beide Nachnamen (D_NACHNAME)

Symmetrische Paare (A,B) <-> (B,A) sollen dabei nicht mit ausgegeben werden.

Mein bisheriger Ansatz:

Code:

SELECT X.D_VORNAME,
    X.D_NR,
    X.D_NACHNAME,
    Y.D_VORNAME,
    Y.D_NR,
    Y.D_NACHNAME
FROM DOZENT X, DOZENT Y
WHERE X.D_VORNAME = Y.D_VORNAME;

Allerdings werden hier falsche Ergebnisse ausgegeben beispielsweise (Dozent A)(Dozent A) also exakt der selbe.

Avatar von

1 Antwort

0 Daumen
werden hier falsche Ergebnisse ausgegeben beispielsweise (Dozent A)(Dozent A)

Du musst noch dafür sorgen, dass X und Y unterschiedliche Werte im Primärschlüssel haben. Beim Primärschlüssel D_NR ginge das mit

WHERE X.D_VORNAME = Y.D_VORNAME AND X.D_NR != Y.D_NR.

Symmetrische Paare (A,B) <-> (B,A) sollen dabei nicht mit ausgegeben werden.

Dann eher

WHERE X.D_VORNAME = Y.D_VORNAME AND X.D_NR < Y.D_NR.

Avatar von 5,7 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community