Tupelinhalt auf Gleichheit prüfen?

Opa114

Neuer Benutzer
Beiträge
3
Hey!

Ich habe folgende drei Tabellen (siehe Anhang).

Ich möchte nun eine Abfrage erstellen, in der folgendes Ausgegeben wird:
Alle "Paare" von Mitarbeitern mit:
- Personal-Nr
- Hotelname
- Beginndatum

die im gleichen Hotel zum gleichen Datum übernachtet haben.

Meine Abfrage sieht bisher so aus:
Code:
Select Mitarbeiter.Name, Mitarbeiter.PNr, Hotel.Name, Beginn From Mitarbeiter INNER JOIN REISE ON Mitarbeiter.PNr = Reise.Mitarbeiter 
INNER JOIN Hotel ON Hotel.Hnr = Reise.Hotel 
WHERE Reise.Hotel = Hotel.HNr AND Reise.Beginn = Reise.Beginn ORDER BY PNr asc;

Allerdings bekomme ich alle Kombinationen ausgegeben. Die Ausgabe sollte aber nur sein:

Maier | 28.01.10 | Arabella
Müller | 28.01.10 | Arabella

Kann mir jemand weiterhelfen?? Wäre euch sehr dankbar!
 

Anhänge

  • Tabellen.jpg
    Tabellen.jpg
    88,6 KB · Aufrufe: 7
Werbung:
AW: Tupelinhalt auf Gleichheit prüfen?

Ich hab mich mal an die Aufgabe gesetzt und hab dabei folgende Lösung:

select distinct m1.pnr, h1.name, r1.beginn
from mitarbeiter m1, reise r1, hotel h1
where m1.pnr = r1.mitarbeiter and h1.hnr = r1.hotel and exists
(select * from mitarbeiter m2, reise r2, hotel h2
where m2.pnr = r2.mitarbeiter and r1.hotel = r2.hotel and m1.pnr != m2.pnr and r1.beginn = r2.beginn);

Hoffe es hilft dir (auch wenn die Antwort ein wenig spät kommt).
 
Zurück
Oben