Har suttit några timmar igår med det här problemet och vet inte hur jag ska lösa det riktigt.
Cal = "SELECT MFName, MLName, Team, LapTime, SUM(LapTime) AS LSUM, COUNT(*) AS antal FROM Race
GROUP BY ManagerID ORDER BY LSUM"
Jag loopar igenom tabellen och räknar ihop tider som summa (LapTime) Grupperat på ManagerID men jag vill även kunna
visa den senaste (Laptime) som kommit in i tabellen Grupperat på ManagerID.
Antingen har du en datetimekolumn i vilken du anger när LapTime sattes eller så använder du dig av en räknare (dock får du då "tidpunkten" för när LapTime sattes in i tabellen, d.v.s. den senaste insatta LapTime).
Grejen är den att 22 LapTime sätts samtidigt av 22 olika användare (spelare) via en kod som genererar LapTime automatiskt var 60'e sekund.
På sidan där resultatet ska visas så sorteras sen de 22 spelarna med hjälp av totalsumman av LapTime men jag får inte sidan att visa den senaste LapTime som samtliga 22 spelare gjorde..
Hur vet du vilken LapTime som är den senaste? Du behöver en kolumn i tabellen (helst en datetime, men det går troligen med en räknare också). Om du inte har någon sådan kan du inte få ut ett senaste värde.
Vet inte hur det är i MySql men kan du inte köra med en derived table? Så här skulle det blir i SQLServer:
SELECT
Race2.*
FROM
(
select
ManagerID,
MFName,
Team,
MAX(Added) AS Added,
SUM(Laptime) AS Summa,
COUNT(Added) AS Antal,
AVG(Laptime) AS Medel
from
Race
group by
ManagerID,
MFName,
Team
) AS Race2
ORDER BY
Summa ASC
Jag missförstod nog hur du ville få ut det. Den här listar:
ManagerID, Sista laptime, Tiden för sista varvet, Summa laptime, Medevärde av laptime.
select
Race.ManagerID,
Race.Laptime AS SistaLaptime,
SistaVarv.SistaVarvAdded,
SUM(SumRace.Laptime) AS Summa,
AVG(SumRace.Laptime) AS MedelVarvtid
from
(
select
Race.ManagerID,
MAX(Race.Added) AS SistaVarvAdded
from
Race
group by
Race.ManagerID
) SistaVarv
inner join
Race
ON
Race.ManagerID = SistaVarv.ManagerID
AND
Race.Added = SistaVarv.SistaVarvAdded
inner join
Race SumRace
on
SumRace.ManagerID = Race.ManagerID
group by
Race.ManagerID,
Race.Laptime,
SistaVarv.SistaVarvAdded
Det är alltså T-SQL och jag har ingen aning om det fungerar i MySql men det kanske hjälper dig på traven.
Jag avvaktar lite med det här problemet då jag snubblat över PostGreSQL och tänker kolla upp om jag får några fördelar med att använda det istället för MySQL..
Använder ju tider HH.MM.SS.MS och det finns inte MS i MySQL så tja..
Fick inte PostGreSQL att funka bra på min burk.. Avvaktar lite med det för en ny version för Windows ska snart komma ut.
Antingen det eller så ger jag mig in i Linuz djungeln och försöker mig på det då det finns alldeles för lite info om användare av PostGreSQL i Windows miljö..
Men mitt problem kvarstår..
Har försökt idag igen med en ny SELECT sats precis innan jag ska försöka få ut värdet men lyckas inte med det heller.. ??