---
title: "Plocka ut saker ur databasen baserat på datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/74087-plocka-ut-saker-ur-databasen-baserat-på-datum"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Känning"
published: "2003-04-14T16:49:51.000Z"
updated: "2003-04-15T20:31:39.000Z"
replies: 12
views: 324
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/asp/74087-plocka-ut-saker-ur-databasen-baserat-på-datum"
---

# Plocka ut saker ur databasen baserat på datum

## #1 — Känning, 2003-04-14T16:49Z

Jag har en databas där jag lagrar spel. 

Nu vill jag sammanställa en statistiksida och det går hyffsat tills jag blandar in datum  :(

Jag vill tex ha ut hur många spel vi spelat varje månad, dvs.

Jan 192
Feb 202
osv.

Sedan skulle jag gärna vilka ha ut resultat också. Det vill säga hur det har gått varje månad. Så egentligen så vill jag att det ska se ut så här:

Jan 192 spel, +2000kr
Feb 202 spel, + 5000 kr
osv.

jag har en accessdatabas och värdet är "datum/tid"

kan någon hjälpa mig att få igång lite tankesätt här med sql-satser

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

## #2 — LarsG, 2003-04-14T17:01Z

```
select monthname(month(spelDatum)) as månad, 
year(spelDatum) as år, count(*) as spel,
sum(resultat) as förlust
from spel
group by 1,2
```

Det är mer relevant att se tabelldefinitionen, nu måste jag gissa vilka namn du har använt.

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

## #3 — Känning, 2003-04-14T17:07Z

LarsG, vad skulle man göra utan dig?  :)

Tabellen ser ut så här:

id \| räknare
datum \| datum/tid
match \| text
insats \| tal
vinst \| tal

Så jag vill alltså addera alla insatser och alla vinster och sedan få ut skillnaden mellan dessa under jan-månad och sedan feb osv.

Tänk på att jag är grym nybörjare, men jag blir bättre och bättre för varje dag  ;)

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

## #4 — LarsG, 2003-04-14T17:22Z

Ok, om vinst inte är inklusive insats.  Du får ändra tabellnamnet och sedan finns det säkert något fel i utskriften.

```
<%
dim connect,rs,q
set connect = server.creatobject("adodb.connection")
connect.open "DSN"
q = "select monthname(month(datum)) as månad, " & _
" year(datum) as år, count(*) as spel, " & _
" sum(vinst - insats) as resultat " & _
" from spel " & _
" group by 1,2 "
'
'Vad heter tabellen?
'
%>
<table>
<tr> <td>År </td> <td> Månad </td> <td> Antal </td> 
<td> Resultat </td> </tr>
<%
set rs = connect.execute(q)
while  not rs.eof 
%>
  <tr><td> <%= rs(1) %> </td> <td><% =rs(0) %> </td>
        <td> <% = rs(2) %> </td><td> <% = rs(3) %> </td></tr>
<% 
 rs.movenext
wend
%> 
</table>
<%
rs.close
set rs = nothing
connect.close
set connect = nothing
%>
```

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

## #5 — Känning, 2003-04-14T17:39Z

Fan, bruden tvingar med mig på bio (kärleksaffär på manhattan eller vad den heter, verkar vara bra manus till den).

Jag får kika på detta när jag kommer hem eller imorgon, men tack för all hjälp så här långt.

:D

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

## #6 — Känning, 2003-04-14T21:20Z

Hmm, jag testade att lägga in den koden jag fick av dig, databasen kallar jag för spel :S och tabellen för spel. Svårgissat :) 

(men den ligger iaf så man inte kan ladda ner den)

Jag skrev in det som du gav mig och la till sökvägen till min databas, men det funkar inte, fick felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Odefinierad funktion 'monthname' i uttryck.
/spel/test_stat.asp, line 25

\<%
dim connect,rs,q
set connect = server.createobject("adodb.connection")
connect.open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("spel.mdb")&";"

q = "select monthname(month(datum)) as månad, " & \_
" year(datum) as år, count(\*) as spel, " & \_
" sum(vinst - insats) as resultat " & \_
" from spel " & \_
" group by 1,2 "

%\>
\<table\>
\<tr\> \<td\>År \</td\> \<td\> Månad \</td\> \<td\> Antal \</td\> 
\<td\> Resultat \</td\> \</tr\>
\<%
'Detta är rad 24
set rs = connect.execute(q)
while  not rs.eof 
%\>
  \<tr\>\<td\> \<%= rs(1) %\> \</td\> \<td\>\<% =rs(0) %\> \</td\>
        \<td\> \<% = rs(2) %\> \</td\>\<td\> \<% = rs(3) %\> \</td\>\</tr\>
\<% 
 rs.movenext
wend
%\> 
\</table\>
\<%
rs.close
set rs = nothing
connect.close
set connect = nothing
%\>

Vad kan vara fel?

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

## #7 — Känning, 2003-04-15T09:38Z

Shyssta LarsG hjälp mig :)

Vad kan det vara som är fel?

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

## #8 — LarsG, 2003-04-15T09:42Z

Jag blandade ihop lite, monthname finns tydligen bara i VB

```
q = "select month(datum) as månad, " & _
" year(datum) as år, count(*) as spel, " & _
" sum(vinst - insats) as resultat " & _
" from spel " & _
" group by 1,2 "
```

så du får hantera det i utskriften istället

```
 <tr><td> <%= rs(1) %> </td> <td><% =monthname(cint(rs(0))) %> </td>
<td> <% = rs(2) %> </td><td> <% = rs(3) %> </td></tr>
```

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

## #9 — Känning, 2003-04-15T09:58Z

Jag måste vara trög, men nu ser min kod ut så här, men det funkar inte, felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'month(datum)'.
/spel/test_stat.asp, line 26

\<%
dim connect,rs,q
set connect = server.createobject("adodb.connection")
connect.open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("spel.mdb")&";"

q = "select month(datum) as månad, " & \_
" year(datum) as år, count(\*) as spel, " & \_
" sum(vinst - insats) as resultat " & \_
" from spel " & \_
" group by 1,2 " 

%\>
\<table\>
\<tr\> \<td\>År \</td\> \<td\> Månad \</td\> \<td\> Antal \</td\> 
\<td\> Resultat \</td\> \</tr\>
\<%
'detta är rad 25
set rs = connect.execute(q)
while  not rs.eof 
%\>
 \<tr\>\<td\> \<%= rs(1) %\> \</td\> \<td\>\<% =monthname(cint(rs(0))) %\> \</td\>
\<td\> \<% = rs(2) %\> \</td\>\<td\> \<% = rs(3) %\> \</td\>\</tr\> 

\<% 
 rs.movenext
wend
%\> 
\</table\>
\<%
rs.close
set rs = nothing
connect.close
set connect = nothing
%\>

En annan fråga, rs(1) och rs(0), var kommer de ifrån och hur tilldelas de värdet.

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

## #10 — mrblonde, 2003-04-15T13:53Z

> **Känning skrev:**
>
> En annan fråga, rs(1) och rs(0), var kommer de ifrån och hur tilldelas de värdet.

Det är index i ditt recordset för att komma åt de olika svarskolumnerna.

select id, datum, match from spel

då kan du hämta ut id ur ditt recordset antingen med
rs("id") 
eller så kan du skriva 
rs(0)
eftersom id kommer först i din select sats får det index 0, datum har index 1 och match har index 2.

Om man skriver en select sats som inte söker ut en viss kolumn utan tex räknar antalet  rader är det rätt praktiskt att kunna komma åt svaret

ex:
select count(\*) from spel
nu kan du får ut svaret på count(\*) i ditt rs genom att skriva rs(0)

Det finns ett annat sätt med, du kan namnge din kolumn i ditt rs om du vill till ett annat namn än ursprungsnamnet eller ge count(\*) kolumnen ett namn

select count(\*) as Antal from spel

nu kan du skriva rs("Antal") eller rs(0)

detta gäller som sagt med även för en vanlig select sats 

ex: 
Select id as MyId, datum as DatumHittaPaNamn from Spel
nu akn du komma åt id genom rs("MyId") eller rs(0) men inte genom rs("id").

Hoppas du hänger med.

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

## #11 — Känning, 2003-04-15T13:58Z

Kanon förklaring  :)

Jag är med, men jag har fortfarnade problem med mitt exempel :(

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

## #12 — LarsG, 2003-04-15T15:54Z

```
q = "select month(datum) as månad, " & _
" year(datum) as år, count(*) as spel, " & _
" sum(vinst - insats) as resultat " & _
" from spel " & _
" group by month(datum), year(datum) "
```

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

## #13 — Känning, 2003-04-15T20:31Z

Tack det funkar  :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/74087-plocka-ut-saker-ur-databasen-baserat-på-datum
