1k Aufrufe
Gefragt in Datenbanken von
Hallo Leute.

Ich habe einen Spielplan in Form einer Datenbank-Tabelle vorliegen. Die Tabelle sieht (vereinfacht) so aus:

Tabelle: 'spielplan'
+----------+-------+--------+------+-----+
| datum | team | gegner | zeit | ort |
+----------+-------+--------+------+-----+
| 20130113 | Team1 | | | |
| 20130113 | Team2 | | | |
| 20130115 | Team1 | | | |
| 20130115 | Team3 | | | |
| 20130115 | Team2 | | | |
| 20130115 | Team4 | | | |
| 20130119 | Team1 | | | |
| 20130119 | Team4 | | | |
| 20130124 | Team2 | | | |
| 20130124 | Team3 | | | |
+----------+-------+--------+------+-----+


Gegner, Zeit und Ort sind erstmal unwichting. Stattdessen möchte ich wissen, wieviele Spiele jede Mannschaft in der kommenden Woche hat (KW4). Dies kann ich mit der nachfolgenden SQL-Abfrage erreichen:

SELECT team, count(team) AS spiele_kw4
FROM spielplan
WHERE datum >= 20130121
AND datum < 20130128
GROUP BY team


Für KW5 wäre das entsprechend:

SELECT team, count(team) AS spiele_kw5
FROM spielplan
WHERE datum >= 20130128
AND datum < 20130204
GROUP BY team


Ist es möglich zwei (oder mehr) solcher Abfragen in einer zu kombinieren? Ich hätte gerne eine Übersicht mit der Anzahl der Spiele pro Mannschaft für die kommenden 4-5 Kalenderwochen. Dafür hätte ich gern nach Möglichkeit eine einzige SQL-Abfrage parat.


Danke für eure Hilfe.

2 Antworten

0 Punkte
Beantwortet von repiv Mitglied (272 Punkte)
Hallo,
die Antwort hängt von dem Datenbanksystem ab, das Du verwendest.
Meine Antwort bezieht sich auf den MS SQL Server.

Zunächst sollte man die Kalenderwoche berechnen lassen und nicht per Hand angeben.
Dazu kann man die Datepart Fkt verwenden oder
eine SQL Funktion verwenden, da die Datenpart Fkt bei der Berechnung Schwächen hat.
www.dotnetnukeblog.de/post/Mit-SQL-Die-Kalenderwoche-Ermittlen.aspx

Anschließend könnte die Abfrage so aussehen

select team,count(team) AS Spiele,dbo.fn_ISOweek (datum) AS KW
from spielplan
GROUP BY team,dbo.fn_ISOweek (datum)
order by dbo.fn_ISOweek (datum)


Diese gibt dann das Team, die Anzahl und die Kalenderwoche aus.

Gruß
Martin
0 Punkte
Beantwortet von
Hallo und danke für die schnelle Antwort.

Das hilft mir auf jeden Fall schon mal weiter. Jetzt weiß ich, wie so eine Abfrage aufgebaut werden muss.

Natürlich hätte ich angeben sollen, dass ich mit einer MySQL Datenbank arbeite...


Gruß
...