---
title: "Skulle vilja veta hur många datum som är registrerade per månad."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/143767-skulle-vilja-veta-hur-många-datum-som-är-registrerade-per-månad"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Addeladde"
published: "2006-03-11T15:58:46.000Z"
updated: "2006-03-12T10:02:09.000Z"
replies: 5
views: 311
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/143767-skulle-vilja-veta-hur-många-datum-som-är-registrerade-per-månad"
---

# Skulle vilja veta hur många datum som är registrerade per månad.

## #1 — Addeladde, 2006-03-11T15:58Z

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     |
----------------------------------------------------------------
```

Permalänk: https://www.webforum.nu/p/143767

## #2 — tydal, 2006-03-11T16:12Z

Vill du ha ut antalet registrerade per dag?

SELECT datum, COUNT(\*) as antal FROM tabell GROUP BY datum ORDER BY datum

Permalänk: https://www.webforum.nu/p/1779335

## #3 — tydal, 2006-03-11T16:13Z

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...

Permalänk: https://www.webforum.nu/p/1779337

## #4 — Addeladde, 2006-03-11T18:39Z

Jag löste det i applikationen i stället för i sql-satsen.

Permalänk: https://www.webforum.nu/p/1779401

## #5 — @nders, 2006-03-12T06:54Z

> **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å...

Permalänk: https://www.webforum.nu/p/1779486

## #6 — Addeladde, 2006-03-12T10:02Z

> **@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) & "&nbsp;" & cINT(Mid(lektionDatum, 9, 2)) & "&nbsp;" & 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:&nbsp;" & 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"">&nbsp;</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)
  %>
```

Permalänk: https://www.webforum.nu/p/1779518

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/143767-skulle-vilja-veta-hur-många-datum-som-är-registrerade-per-månad
