limponMedlem sedan sep. 2001175 inlägg Vet inte riktigt vart det här inlägget passar hemma. Om det är i SQL eller i ASP tråden.
Hur som helst jag chansar på att det är här.
Eftersom det är en SQL sats jag vill ha hjälp med.
Hur som helst, jag håller på att göra en träningsdagbok.
Och håller nu på att sätta ihop en topplista, på vilka som har tränat mest, vilka som har tränat mest ( i tid räknat).
Och det är här jag stuper.
Jag har 3 fält. Namn, Start_Tid, Slut_Tid.
Nu vill jag på något vis få ihop en sats som skriver ut de 5 första som har tränat mest i tid räknat.
Jag har ingen aning om hur jag ska gå till väga här riktigt.
Men vill att de ska skrivas ut så här.
1. AAA: 14 timmar 26 min.
2. BBB: 10 timmar 10 min.
3. CCC: 9 timmar.
Hoppas nån kan hjälpa mig med den här SQL satsen, vore tacksam för hjälp i alla fall.
LarsGMedlem sedan dec. 200012 464 inlägg select namn, sum(datediff('s',start_tid,slut_tid))
from t
group by namn
order by 2 desc
Om du skall använda datediff eller någon annan funktion beror på vilken DBMS du använder.
Nu är summan i sekunder men det är ju väldigt enkelt att i ASP omvandla detta till timmar och minuter
limponMedlem sedan sep. 2001175 inlägg Okej kanske lite lam fråga men hur skriver jag ut tiden därifrån.
Sedan förstår jag inte riktigt nu heller, skriver den där sql satsen verkligen ut den som har tränat mest först?.
Engine^Medlem sedan dec. 20003 887 inlägg SELECT TOP 5 Namn, Sum(DateDiff("n", Start_Tid, Slut_Tid)) AS intAntalMinuter
FROM [i]tabell[/i]
GROUP BY Namn
ORDER BY 2 DESC
Detta förutsätter att du har Start_Tid och Stop_Tid lagrat som datum. Utskriftsformatteringen måste du antagligen hantera via asp.
intCounter = 1
While Not rsTopp.EOF
intMinuter = CInt(rsTopp("intAntalMinuter")) Mod 60
intTimmar = (CInt(rsTopp("intAntalMinuter")) - intMinuter) / 60
Response.Write intCounter & ". " & rsTopp("Namn") &" : " & intTimmar & " timmar " & intMinuter & " min.<br>"
rsTopp.MoveNext
Wend
limponMedlem sedan sep. 2001175 inlägg Okej fick till det nu, tack för hjälpen.