Ich habe mal wieder ein für mich unlösbares Problem, folgendes;
Es gibt die Tabelle "Spiele" mit den relevanten Feldern; HeimTeam, GastTeam
Es gibt die Tabelle "Mannschaften" mit dem relevanten Feld; Team
PS: Team findet sich in den Feldern "HeimTeam" und "GastTeam"
meine Wunschabfrage:
Das jeweils 6. Spiel aus der Tabelle "Spiele", gruppiert nach Team (aus Tabelle "Mannschaften")
Funktioniert (wenn überhaupt) wohl nur über sql
Kann mir bitte jemand den Code schreiben?
Ich versuche es nochmal mit einer anderen Fragestellung dessen Antwort mir ebenfalls weiter helfen würde:
Tabelle "Spiele"
HeimTeam GastTeam
Team 5........Team 1
Team 6........Team 3
Team 1........Team 5
Team 6........Team 1
Neues Abfrageergebnis: Zeige 2. Spiel von Team 1
Egebnis:
HeimTeam GastTeam
Team 1........Team 5
__________________________
Das ganze bekomme ich über mehrere Abfragen, (Spitzenwerte und letzte/erste Wert usw) hin,- bekomme ich das Ergebnis (wie oben) auch in nur einer Abfrage hin??
Hallo,
um einen n-ten Datensatz finden zu können, brauchst du ein Sortierkriterium, bsw. ein Datum.
Dann ließe sich eine solche Abfrage erstellen:
SELECT Top 1 a.* From
(Select Top 2 b.* From tbl_TeamSpiele As b
Where b.Heim = "Team1" Or b.Gast = "Team1"
Order By SpielDatum) As a
Order By SpielDatum desc;
Toll MaggieMay, funzt!
Diese Abfrage kann ich in vielen Varianten sehr gut gebrauchen!
Vieleicht zum Schluss noch die Frage, ob es möglich ist, das in der Abfrage nicht nur das 2. Spiel eines Team angezeigt wird, sondern das 2. Spiel aller vorhandener Teams in tabl_TeamSpiele?
.. ich meine, wenn ich zB die Teams aus dem Endlosformular "Mannschaften" suche, wird "nur" das Spiel mit dem ersten Team (aus Endlosformular) angezeigt, aber wie bekomme ich eine Gruppierung aller Teams - und dessen 2. Spiel - hin??
Zitat
SELECT Top 1 a.* From
(Select Top 2 b.* From tbl_TeamSpiele As b
Where b.Heim = [Formulare]![Mannschaften]![Team] Or b.Gast = [Formulare]![Mannschaften]![Team]
Order By SpielDatum) As a
Order By SpielDatum desc;
Hallo,
das wäre wohl eine Frage für SQL-Experten, zu denen ich mich leider nicht zählen kann.
Interessant wäre aber vermutlich in jedem Fall, welche Datenfelder die Tabelle sonst noch enthält. Gibt es bspw. ein Veranstaltungsdatum oder eine lfd. Nummer für den Spieltag?
Die Grunddaten sind >Datum-HeimTeam-GastTeam-HeimTreffer-GastTreffer-HzHeimTreffer-HzGastTreffer
einen eindeutigen Schlüssel habe ich generiert.
Hi,
es scheint so, als hätte ich doch einen Weg gefunden, schau mal, ob du damit etwas anfangen kannst:
Select q.*, DCount("*","tbl_TeamSpiele","(Heim='" & q.Team & "' OR Gast='" & q.Team & "') and Datum<" & CDbl(q.Datum))+1 AS lfdNr
From
(SELECT Datum, Heim As Team From tbl_TeamSpiele
UNION
SELECT Datum, Gast From tbl_TeamSpiele
) As q
Damit werden die Spiele jedes einzelnen Teams durchnummeriert woraus du wiederum beliebige Spieltage selektieren kannst.
Hai MaggieMay,
das sieht gut aus ... auch wenn ich noch dies nicht so richtig umzusetzen weis...
Es wird allerdings bei einem bestimmten Eintrag ein Fehler angezeigt. Es geht um "M'gladbach". Ich habe im Anhang mal die "Stammdatei"
Wenn du nicht auf Hochkommas in den Bezeichnungen verzichten kannst, musst du den Code folgendermaßen ändern:
DCount("*","tbl_TeamSpiele","(Heim='" & Replace(q.Team, "'", "''") & "' OR Gast='" & Replace(q.Team, "'", "''") & "') and Datum<" & CDbl(q.Datum))+1 AS lfdNr
oder so:
DCount("*","tbl_TeamSpiele","(Heim=""" & q.Team & """ OR Gast=""" & q.Team & """) and Datum<" & CDbl(q.Datum))+1 AS lfdNr
jepp,
der Fehler ist behoben.
Werde mit diesem Abfrageergebnis versuchen, an mein Ziel zu gelangen ...
MaggieMay, Danke für die kompetente Unterstützung und deiner Geduld ....
bis denne
Geht alles easy!
Weil oben alles so ein bischen wirr erklärt ist, habe ich mal die drei Dateien angefügt,- falls es jemanden interessiert.