---
title: "en sql-sats istället för tio?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/69505-en-sql-sats-istället-för-tio"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "ampy"
published: "2003-02-26T15:31:32.000Z"
updated: "2003-02-26T17:35:48.000Z"
replies: 8
views: 235
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/69505-en-sql-sats-istället-för-tio"
---

# en sql-sats istället för tio?

## #1 — ampy, 2003-02-26T15:31Z

Har denna kod:

```
	set rs = connect.execute("select count(*) as 1dagar from members where senastinloggad > '"&DateAdd("d", -1, Now)&"'")
	response.write rs("1dagar") & " medlemmar har loggat in de 1 senaste dagarna.<br>"
	set rs = nothing

	set rs = connect.execute("select count(*) as 2dagar from members where senastinloggad > '"&DateAdd("d", -2, Now)&"'")
	response.write rs("2dagar") & " medlemmar har loggat in de 2 senaste dagarna.<br>"
	set rs = nothing
```

Denna kod fortsätter tills 10 dagar men det känns lite onödigt att skapa 10 sql-frågor för denna applikation. Hur kan man räkna ut de tio uppgifterna med endast en sql-sats eller kan man göra på något annat sätt som är bättre än mitt sätt?

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

## #2 — LarsG, 2003-02-26T15:53Z

```
set rs = connect.execute("select day(senastInloggad) as dagen, count(*) as dagar " & _
" from members " & _
" where senastinloggad >'"&DateAdd("d", -1, Now) & _
" group by day(senastInloggad) " )
```

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

## #3 — ampy, 2003-02-26T16:04Z

Hmm, får felmeddelandet:

```
TCX][MyODBC]You have an error in your SQL syntax near '(senastinloggad) as dagen, count(*) as dagar from members where senastinloggad >' at line 1
```

På sql-satsen:

```
	sql = 	"select day(senastinloggad) as dagen, count(*) as dagar " & _
		"from members " & _
		"where senastinloggad > '"&DateAdd("d", -1, Now)&"' " & _
		"group by day(senastInloggad) "
```

Jag ser inget fel i koden. :(

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

## #4 — LarsG, 2003-02-26T16:47Z

Det är ju Mysql

```
sql = 	"select dayofmonth(senastinloggad) as dagen, count(*) as dagar " & _
		"from members " & _
		"where senastinloggad > '"&DateAdd("d", -1, Now)&"' " & _
		"group by dayofmonth(senastInloggad) "
```

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

## #5 — ampy, 2003-02-26T16:55Z

Nu tar den koden bara de två senaste dagarna, jag vill ha de tio senaste dagarna.

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

## #6 — LarsG, 2003-02-26T17:02Z

```
sql = 	"select dayofmonth(senastinloggad) as dagen, count(*) as dagar " & _
		"from members " & _
		"where senastinloggad > '"&DateAdd("d", -9, Now)&"' " & _
		"group by dayofmonth(senastInloggad) "
```

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

## #7 — ampy, 2003-02-26T17:12Z

Hmm, kom på att det inte blev så som jag vill ha det nu. Din kod räknar ju bara hur många poster som finns under det datumet. Den koden jag postade i första inlägget i denna tråd gör inte riktigt samma sak. Den räknar hur många medlemmar som har loggat in de 24 senaste timmarna, 48 senaste timmarna, 72 senaste timmarna osv. 

Hur ska man göra så att det blir så som jag vill ha det?

Ex finns på denna sida:
<http://www.ampy.net/active_members.asp>

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

## #8 — LarsG, 2003-02-26T17:28Z

det har du rätt i. Det går inte att få  till med en fråga i Mysql.

```
sql = 	"select count(*) as dagar " & _
		"from members " & _
		"where senastinloggad > '"&DateAdd("d", -9, Now)&"' " & _
		"group by to_days(senastInloggad) " & _
" order by to_days(senastInloggad) desc "
```

Om du tar ovanstående fråga så kan du summera i ditta ASP-script.

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

## #9 — ampy, 2003-02-26T17:35Z

Har skrivit koden så här nu:

```
	sql = 	"select count(*) as dagar " & _
		"from members " & _
		"where senastinloggad > '"&DateAdd("h", -240, Now)&"' " & _
		"group by to_days(senastinloggad) " & _
		"order by to_days(senastinloggad) desc "

	set rs = connect.execute(sql)

	x = 0
		do until x = 10

			x = x + 1
			intMembers = intMembers + rs("dagar")

			response.write intMembers & " medlemmar loggade in<br>" 
	
			rs.movenext
			loop

	set rs = nothing
```

Då får jag detta resultat:

89 medlemmar loggade in
134 medlemmar loggade in
161 medlemmar loggade in
196 medlemmar loggade in
224 medlemmar loggade in
241 medlemmar loggade in
254 medlemmar loggade in
273 medlemmar loggade in
287 medlemmar loggade in
305 medlemmar loggade in

Men på mitt andra sätt får jag följande resultat:

115 medlemmar har loggat in 
147 medlemmar har loggat in 
172 medlemmar har loggat in 
212 medlemmar har loggat in 
229 medlemmar har loggat in 
249 medlemmar har loggat in 
262 medlemmar har loggat in 
275 medlemmar har loggat in 
294 medlemmar har loggat in 
312 medlemmar har loggat in 

Det blir alltså inte riktigt som jag vill ha. :OO 

Men jag kan strunta i det, spelar inte så stor roll.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/69505-en-sql-sats-istället-för-tio
