---
title: "i Rs istället för 2 i loopen?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/92976-i-rs-istället-för-2-i-loopen"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Bosse168"
published: "2003-12-18T10:20:26.000Z"
updated: "2004-02-01T18:34:20.000Z"
replies: 21
views: 579
page: 1
pages: 2
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/92976-i-rs-istället-för-2-i-loopen"
---

# i Rs istället för 2 i loopen?

_Sida 1 av 2._

## #1 — Bosse168, 2003-12-18T10:20Z

När jag loopar ut mina forums inlägg så vill jag ha med hur många inlägg och hur många som skrivits idag. Nu undrar jag om man kan slippa att sätta så många RecSet. 

Nuvarande kod:

```
Set Rs = Connect.Execute("SELECT * FROM forum ORDER BY diskusrubrik")

Do until Rs.eof

Set rsTotal = Connect.Execute("SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"'")
Set rsCount = Connect.Execute("SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "'")
```

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

## #2 — OveRRidE, 2003-12-18T10:34Z

```
Set Rs = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forum ORDER BY diskusrubrik")

response.write rs("TotalPosts")
response.write rs("TodayPosts")
```

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

## #3 — Bosse168, 2003-12-18T11:07Z

Hade missat en ) i slutet på ;)

Får detta fel mess nu:
Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'Rs'

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

## #4 — OveRRidE, 2003-12-18T11:16Z

```
Set rs = Connect.Execute("SELECT * FROM forum ORDER BY diskusrubrik")

Set rsInfo = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forum ORDER BY diskusrubrik"))

response.write rsInfo("TotalPosts")
response.write rsInfo("TodayPosts")
```

RED. Fel, citatet var aningen malplacerat.

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

## #5 — Bosse168, 2003-12-18T11:19Z

Skulle man kunna baka in denna SQL sats i rsInfo?

```
Set Rs2 = Connect.Execute("SELECT * FROM forumpost WHERE diskusid='"& Rs("diskusid") &"' AND svarid=0 ORDER BY datum2 DESC LIMIT 5")
```

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

## #6 — Bosse168, 2003-12-18T11:22Z

Får det här fel messet:

\[TCX\]\[MyODBC\]You have an error in your SQL syntax near 'SELECT COUNT(\*) AS Antal FROM forumpost Where diskusid = '4') as TotalPosts, (SE' at line 1

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

## #7 — OveRRidE, 2003-12-18T11:24Z

Jajamensan. 

```
Set rsInfo = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forumpost WHERE diskusid='"& Rs("diskusid") &"' AND svarid=0 ORDER BY datum2 DESC LIMIT 5"))
```

Jag *tror* det där stämmer..

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

## #8 — OveRRidE, 2003-12-18T11:27Z

1\. Är dina ID-fält verkligen av typen text? Det ser ut så, men är de det?
2\. Hur ser SQL-satsen ut nu?

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

## #9 — Bosse168, 2003-12-18T11:30Z

1\.
 postid 	int(11)
 svarid 	int(11)
 diskusid 	int(11)

2\.

```
Set Rs = Connect.Execute("SELECT * FROM forum ORDER BY diskusrubrik")

Do until Rs.eof

Set rsInfo = Connect.Execute("SELECT (SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"') as TotalPosts, (SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "') As TodayPosts, * FROM forumpost WHERE diskusid='"& Rs("diskusid") &"' AND svarid=0 ORDER BY datum2 DESC LIMIT 5")
```

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

## #10 — Bosse168, 2003-12-18T11:32Z

Får detta fel mess:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09' 

\[TCX\]\[MyODBC\]You have an error in your SQL syntax near 'SELECT COUNT(\*) AS Antal FROM forumpost Where diskusid = '4') as TotalPoster, (S' at line 1

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

## #11 — @nders, 2003-12-18T11:36Z

MySQL i versioner lägre än 4.1 stödjer inte subqueries. 

Man kan säkerligen skriva liknande frågor för lägre versioner, läs mer [här](http://www.mysql.com/doc/en/Rewriting_subqueries.html).

mvh

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

## #12 — Bosse168, 2003-12-18T11:42Z

Så det går alltså inte att få ihop dessa två Rs i samma?

```
Set rsTotal = Connect.Execute("SELECT COUNT(*) AS Antal FROM forumpost Where diskusid = '"& Rs("diskusid") &"'")
Set rsCount = Connect.Execute("SELECT count(postid) AS Antal FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "'")
```

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

## #13 — @nders, 2003-12-18T11:46Z

Jo, de borde gå att få ihop genom att använda UNION.

```
Set rsTotal = Connect.Execute("SELECT COUNT(*) AS Antal, 'Totalt' As Något FROM forumpost Where diskusid = '"& Rs("diskusid") &"' UNION SELECT count(postid), 'Postantal' FROM forumpost WHERE diskusid = '"& rs("diskusid") &"' AND datum>'" & DateAdd("d",-1,Date()) & "'")
```

Du borde få ett recordset som ser ut så här:

```
Antal    Något
------------------------
123      Totalt
99       Postantal
```

Mvh

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

## #14 — Bosse168, 2003-12-18T11:48Z

Hur får jag ut antalet och dagens?

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

## #15 — @nders, 2003-12-18T11:49Z

Du loopar igenom recordsetet och skriver ut värdena?

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

## #16 — Bosse168, 2003-12-18T11:50Z

Får detta fel mess:

Microsoft OLE DB Provider for ODBC Drivers error '80040e09' 

\[TCX\]\[MyODBC\]You have an error in your SQL syntax near 'UNION SELECT count(postid), 'Postantal' FROM forumpost WHERE diskusid = '4' AND ' at line 1

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

## #17 — @nders, 2003-12-18T11:51Z

Hmm. Det visar sig att UNION introducerades i version 4 av MySQL. Vilken version använder du? Har du möjlighet att uppgradera?

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

## #18 — Bosse168, 2003-12-18T11:53Z

Just nu använder jag 3.xx men det finns möjlighet att uppgradera till MySQL 4.0.16

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

## #19 — Bosse168, 2003-12-18T12:36Z

Är det stor skillnad mellan 3.xx och 4.xx?

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

## #20 — @nders, 2003-12-18T12:41Z

Säkert. Bara av det vi märkt i den här tråden är det tillräckligt stor skillnad för att motivera en uppgradering.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/92976-i-rs-istället-för-2-i-loopen  
Nästa sida: https://www.webforum.nu/amne/asp/92976-i-rs-istället-för-2-i-loopen/page2.md
