Hej,
Jag har en databas med fälten Datum, Gjorda och Inslappta. Jag skulle vilja skriva ut antal vinster för varje dag.
Tex:
2003-07-20 - 3 vinster
2003-07-21 - 4 vinster
2003-07-22 - 65 vinster
15 svar · 279 visningar · startad av asp
Hej,
Jag har en databas med fälten Datum, Gjorda och Inslappta. Jag skulle vilja skriva ut antal vinster för varje dag.
Tex:
2003-07-20 - 3 vinster
2003-07-21 - 4 vinster
2003-07-22 - 65 vinster
SQL = "SELECT datum, count(*) AS vinster FROM tabell WHERE gjorda > inslappta GROUP BY datum ORDER BY datum ASC"
Vilken DBMS?
Enligt sql-standarden
select datum,
sum(case when gjorda > inslappta then 1 else 0 end)
from t
group by datum
Flyttas från ASP
<%strSQL = "SELECT * FROM databas order by datum desc"
Set RecSet = objCon.Execute(strSQL)%>
<%Do Until RecSet.EOF%>
<%=RecSet("datum")%> - <%=RecSet("vinster")%>
<%RecSet.Movenext
Loop%>
Du får självklart bara ha en sån här tagg per dag om det ska se ut som du vill, sen får du använda update för att visa hur många vinster det är...
De här är ju de absolut enklaste sättet att göra det på, men varför krångla till det?
Hur gör jag om jag i samma SQL sats skall få fram antal matcher per dag då?
select datum,
sum(case when gjorda > inslappta then 1 else 0 end),
count(*)
from t
group by datum
Men alltså, jag vill få fram antal matcher jag spelat på en dag.
Tex så här skulle det se ut om jag gjorde det "manuellt":
SQL = "SELECT Count(*) FROM tabell WHERE datum = 'date()'"
Har du testat min fråga? Du har heller inte sagt vilken DBMS du använder.
Men din kod skriver ut antal vinster? Använder Access.
select datum,
sum(iif(gjorda > inslappta,1,0)) as vinster,
count(*) as matcher
from t
group by datum
Så, den borde fungera i access.
Tack!
Kan passa på att fråga en till sak då.
Om jag vill räkna matcher denna vecka, dvs inte 7 dagar bakåt utan tills måndagen. Hoppas du förstår.
För att det gäller SQL?
Ja precis som SteveP skriver. Det handlar om SQL ??
Fattade det som att du behövde hjälp med en Access-grej.. ;)
Ok, jag förlåter dig. :D