Hallo,
puh, machst du das kompliziert
Zuerst mal, weg mit dem Select *
das macht das alles viel zu unübersichtlich
Was du hier nehmen solltest, sind subselects und unions.
Bsp (ohne jetzt deine Felder nud Tabellen zu benutzen)
SQL-Code:
Select S1.Name, 1 as Teilnehmen
From Sportler S1
where S1.SportlerId not in
(select S2.SportlerId From Sportler S2
join SportlerEvent on SportlerEvent.SportlerId=S2.SportlerId
where SportlerEvent.EventId=2)
Union All
Select S1.Name, 2 as Teilnehmen
From Sportler S1
where S1.SportlerId in
(select S2.SportlerId From Sportler S2
join SportlerEvent on SportlerEvent.SportlerId=S2.SportlerId
where SportlerEvent.EventId=2)
Erklärung
Die erste
Query ermittelt alle Sportler,
die nicht (
Not In) in Event 2 sind.
Das
1 as Teilnehmen erzeugt, erzuegt einfach die Zahl1.
Die zweite
Query zeigt genau die anderen
Sportler an, die in Event2 waren.
Das Union All verknüpft beide Abfragen.
Es wird die Summe zurückgliefert.
Heiko
PS:
Bei Fragen bitte zuerst mal eine ordentliche Tabellenbeschreibung.