Vill du ha ut antalet registrerade per dag?
SELECT datum, COUNT(*) as antal FROM tabell GROUP BY datum ORDER BY datum
5 svar · 298 visningar · startad av Addeladde
Hej
Kan man på något sätt få antal registrerade datum i en månad.
Typ:
select datum, (.....) as antDatumPerManad
Utskrift ska bli:
datum antal reg i månad
2005-10-16 3
2005-10-22
2005-10-26
2005-11-10 2
2005-11-12 2
Det ska alltså bara srivas ut antal registrerade datum för det första datumet.
Är även öppen för andra förslag
Det jag vill åstadkomma är en tabell som har den första raden med mergade celler för månaden. Ska alltså använda talet till att sätta colspan="tal"
Typ:
----------------------------------------------------------------
| oktober | november |
----------------------------------------------------------------
| 16 | 22 | 26 | 10 | 12 |
----------------------------------------------------------------
Vill du ha ut antalet registrerade per dag?
SELECT datum, COUNT(*) as antal FROM tabell GROUP BY datum ORDER BY datum
Aha, nu förstod jag vad du ville... ögonblick...
SELECT datum, COUNT(*) as antalPerManad FROM tabell GROUP BY SUBSTRING(datum, 1, 7) ORDER BY datum
Fast det ger bara ett datum per månad... hmm...
Jag löste det i applikationen i stället för i sql-satsen.
tydal skrev:
SELECT datum, COUNT(*) as antalPerManad FROM tabell GROUP BY SUBSTRING(datum, 1, 7) ORDER BY datum
Man skall aldrig använda strängfunktioner på datumvärden. Använd de datum-funktioner som finns tillgängliga i SQL. Man kan ju inte vara säker på i vilket format datumen är sparade i databasen...
Jag löste det i applikationen i stället för i sql-satsen.
Ok, du loopar alltså igenom och räknar i applikationen? Låter inte som en optimal lösning, men är det så du vill ha det, så...
@nders skrev:
Ok, du loopar alltså igenom och räknar i applikationen? Låter inte som en optimal lösning, men är det så du vill ha det, så...
Jag ska ändå skriva ut allting från databasen så det spelar inte så stor roll. Loopar bara igenom en gång.
Koden är inte så snygg men jag tror inte att den är så resurskrävande.
While not lektionerRS.Eof
lektionDatum = lektionerRS("lektionDatum")
If raknare = 0 Then
curMonth = monthName(month(lektionDatum))
curYear = left(lektionDatum,4)
colspanMonth = -1
colspanYear = -1
End If
If left(lektionDatum,4) = curYear Then
colspanYear = colspanYear + 1
Else
strTDYear = strTDYear & " <td colspan="""& colspanYear+1 &""" style=""text-align: center; background-color: "& yearColor(yRaknare) &""">"& curYear &"</td>" &vbcrlf
curYear = left(lektionDatum,4)
colspanYear = 0
yRaknare = yRaknare + 1
End If
If monthName(month(lektionDatum)) = curMonth Then
colspanMonth = colspanMonth + 1
Else
strTDMonth = strTDMonth & " <td colspan="""& colspanMonth+1 &""" style=""text-align: center; background-color: "& monthColor(curMonth) &""">"& curMonth &"</td>" &vbcrlf
curMonth = monthName(month(lektionDatum))
colspanMonth = 0
End If
If raknare mod 2 = 0 Then
bgColor = "#F3F3F3"
Else
bgColor = "#FFFFFF"
End If
LektionDag = Left(weekdayName(weekday(lektionDatum)),3)
LektionDag = Ucase(left(LektionDag, 1))& Mid(LektionDag, 2) & " " & cINT(Mid(lektionDatum, 9, 2)) & " " & monthName(month(lektionDatum), true)
Klockslag = Mid(lektionDatum, 12, 5)
KlockslagSlut = Mid(dateAdd("n", lektionerRS("lektionLangd"), lektionDatum), 12, 5)
strTDDag = strTDDag & " <td class=""writeVertical"" style=""text-align: center; width: 60px; background-color: "& bgColor &"; cursor: default;"">"& (LektionDag&"<br>kl: " & Klockslag) &"</td>" &vbcrlf
raknare = raknare + 1
lektionerRS.MoveNext
Wend
strTDYear = strTDYear & " <td colspan="""& colspanYear+1 &""" style=""text-align: center; background-color: "& yearColor((yRaknare)) &""">"& curYear &"</td>" &vbcrlf
strTDMonth = strTDMonth & " <td colspan="""& colspanMonth+1 &""" style=""text-align: center; background-color: "& monthColor(curMonth) &""">"& curMonth &"</td>" &vbcrlf
Response.write("<table style="" "" border=""1"" cellspacing=""0"" cellpadding=""0"">" &vbcrlf)
Response.write(" <tr>" &vbcrlf)
Response.write("<td rowspan=""3""> </td>"&vbcrlf)
Response.write(strTDYear)
Response.write(" </tr>" &vbcrlf)
Response.write(" <tr>" &vbcrlf)
Response.write(strTDMonth)
Response.write(" </tr>" &vbcrlf)
Response.write(" <tr>" &vbcrlf)
Response.write(strTDDag)
Response.write(" </tr>" &vbcrlf)
lektionerRS.Close : Set lektionerRS = Nothing
Response.write("</table>" &vbcrlf)
%>