Toranzahl in Abfrage

HammerHe@rt

Erfahrenes Mitglied
Ich habe eine Tabelle in einer Datenbank wo ich alle Torschützen aller Spieler ablege.
Ein Datensatz ist in etwa so aufgebaut:
ID, GID (Spiel-ID), TID, (Spieler ID - Torschütze), VID (Spieler ID - Vorlage), Zeit , Spielstand (Zbsp.: 1:0), Zusatz

Jetzt gebe ich die Tore eines Spiels (GID) aus: (mal den leftjoin zu der spielertabelle weggelassen)

1:0 14:56 TID (VID) - Zusatz
...
...

usw.

Ist es nun auch möglich per Funktion oder Abfrage gleichzeitig anzuzeigen das wievielte Tor insgesamt der Saison dieses war! (Also alle Tore des Spielers (TID) bis zu diesem)

also im Endeffekt sollte es so dastehen....

1:0 14:56 TID [X. Tor in der Saison] (VID)

Irgendwer Tipps wie man das vielleicht in der SQL unterbringen könnte? oder anders berechnen kann ohne es extra in der DB abzulegen.

mfG
Hammerhe@rt
 
Also ich würd das mit dem hier probieren, um die gesamten Tore bis zu diesem Spiel von einem spieler rauszubekommen.

Code:
SELECT
SUBSTRING(  `tore` , 1, LOCATE(  ':',  `tore`  )  -  '1'  )  AS  `team1`,
SUBSTRING(  `tore` FROM (LOCATE(  ':',  `tore`  )  +  '1')  )  AS  `team2` 
FROM  `tabelle` 
WHERE `TID` = 'wert'

so haste den Wert jeder Seite in einer seperaten Spalte. Leider kann ich dir nichts besseres liefern, weil ich nicht mit MySql arbeite derzeit und bei PostgreSQL kannst du SubSelects machen und dan ist die Lösung eleganter, wie ich finde ^^


edit: @redlama. Vielleicht solltest du dir erstmal die Fragestellung durchlesen bevor du was antwortest, was garnicht gefragt war ;)
 
Zuletzt bearbeitet:
jo schon klar so bekomme ich aber nur die Toregesamtzahl heraus....die aber beim 1:0 anders ist als bei 4:1 wenn er da Torschütze war ^^ - aber ich denke ich werde das mit 2 SQL Fragen lösen....

zuerst die SQL für die Tore des Spiels

select * from tore where gid=x

und in der Ausgabe dann bei jedem Tor die cnt sql für die Tore des Spielers bis dato...

oder?
 
Naja wenn du das mit Count hinbekommst :) Also man könnte an die Abfrage ja noch die Zeit mit reinnehmen und dann
hat man eben nur die Tore bis zu einem bestimmten Zeitpunkt in einer Tabelle. Dies müsste man eben nur noch zusammenzählen. Also so zum Beispiel:

Code:
SELECT
SUBSTRING(  `tore` , 1, LOCATE(  ':',  `tore`  )  -  '1'  )  AS  `tore`,
FROM  `tabelle` 
WHERE `TID` = 'wert' AND `zeit` <= 'best_wert'

Also "best_wert" ist eben ein Timestamp. Also ne Zeitangabe. Kommt ja immer drauf an wie du die Zeit in der Tabelle speicherst :)
 
Zurück