webForumDet fria alternativet

Sammanfatta Antal poster i en databas

ASP

16 svar · 176 visningar · startad av cHeMiCaL-X

Medlem sedan okt. 2001208 inlägg
Frågan#1

Hur gör man för att samman fatta antal poster i t.ex. Tabell 1, tabell 2, tabell 3 osv?

Medlem sedan dec. 200012 464 inlägg
#2
set connect = server.createobject("adodb.connection")
connect.open "dsn"
sql = "select count(*),'Tabell1' from tabell1 union all " & _
"select count(*),'Tabell2' from tabell2 union all " & _
"select count(*),'Tabell3' from tabell3 " 
set rs = connect.execute(sql)

while not rs.eof
response.write rs(1) & " innehåller " & rs(0) & " rader <br>"
rs.movenext
wend
rs.close
connect.close

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 1999653 inlägg
#3

beror ju på vad du menar med att sammanfatta. men ett sätt är ju att du gör en count på respektive tabell.

typ:

SQL = "SELECT COUNT(*) AS antalPoster FROM tabell1"
Set RS = conn.Execute(SQL)

Response.Write RS("antalPoster")

ouch, länge sen man va här, så jag är säker på att nån kan ett bättre sätt, men jag är inte riktigt på det klara med syftet av detta... :)

mvh.

[r]
ah, förstår nu att du måste menat som LarsG gjorde... don't mind me.. :)
[/r]

[Redigerat av nakoz den 14 okt 2001]

Medlem sedan okt. 2001208 inlägg
#4

Förlåt.. jag menade typ antal poster i tabell 1 + antal poster i tabell 2 osv..

Medlem sedan okt. 2001208 inlägg
#5

Skall testa med LarsG's exempel.

Medlem sedan dec. 1999653 inlägg
#6

hm, men då funkar väl LarsG:s sätt? annars kan du ju göra som jag sa, fast kalla de rs1, rs2, rs3 osc.. samt: antalPoster1, antalPoster2, antalPoster3 osv..
å sen göra en typ:
Dim svar
svar = rs1("antalPoster1") + rs2("antalPoster2") + rs3("antalPoster3")
Response.Write rs1("antalPoster1") &" + "& rs2("antalPoster2") &" + "& rs3("antalPoster3") &" = "& svar

jag komplicerar till saker som alltid :)

------------------
stora pojkar gråter också.

Medlem sedan okt. 2001208 inlägg
#7

LarsG's exempel ser ut så här:

Tabbell1 innehåller 24 rader
Tabbell2 innehåller 34 rader
Tabbell3 innehåller 55 rader
osv..

Medlem sedan dec. 1999653 inlägg
#8

hur vill du ha det då?

------------------
stora pojkar gråter också.

Medlem sedan okt. 2001208 inlägg
#9

Antal poster från tabell 1 + Antal poster från tabell 2 + antal poster från tabell 3 = summan

Nånting sånt..

Medlem sedan dec. 1999653 inlägg
#10

det kan du ju faktist få fram med mitt script om du jobbar lite med det... :)

------------------
stora pojkar gråter också.

Medlem sedan okt. 2001208 inlägg
#11

Så här har jag gjort nu:

<%
Dim Total

set connect = server.createobject("adodb.connection")
connect.open "bypath"
tabell1 = "SELECT COUNT(*) AS antalPoster1 FROM apps"
tabell2 = "SELECT COUNT(*) AS antalPoster2 FROM console"
tabell3 = "SELECT COUNT(*) AS antalPoster3 FROM games"
tabell4 = "SELECT COUNT(*) AS antalPoster4 FROM movies"
tabell5 = "SELECT COUNT(*) AS antalPoster5 FROM music"

Set RS1 = connect.Execute(tabell1)
set RS2 = connect.execute(tabell2)
Set RS3 = connect.Execute(tabell3)
set RS4 = connect.execute(tabell4)
Set RS5 = connect.Execute(tabell5)

Total = RS1("antalPoster1") + RS2("antalPoster2") + RS3("antalPoster3") + RS4("antalPoster4") + RS5("antalPoster3")

while not rs.eof
response.write "<font color='red'>" & Total & "</font>"
rs.movenext
wend
rs.close
connect.close

%>

Och då får jag det här felet:
That makes a total of
ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/bypath/total.asp, line 18

[Redigerat av cHeMiCaL-X den 14 okt 2001]

Medlem sedan dec. 200012 464 inlägg
#12

RS5("antalPoster3")

skall vara

RS5("antalPoster5")

Sen så får du nog konvertera värdena till long vid summeringen

Total = Clng(RS1("antalPoster1")) + Clng(RS2("antalPoster2")) + Clng(RS3("antalPoster3")) + Clng(RS4("antalPoster4")) + Clng(RS5("antalPoster5"))

response.write "<font color='red'>" & Total & "</font>"
connect.close

Varför hade du en loop med här?

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001208 inlägg
#13

glömde "" i RS.Execute("tabell1") osv

men nu får jag ett nytt fel :(

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

[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

/bypath/total.asp, line 12

Medlem sedan okt. 2001208 inlägg
#14

Glömde att ta bort loopen RS.Movenext
och det andra..

Medlem sedan okt. 2001208 inlägg
#15

Nu ser det ut så här:

<%
Dim Total

set connect = server.createobject("adodb.connection")
connect.open "bypath"
tabell1 = "SELECT COUNT(*) AS antalPoster1 FROM apps"
tabell2 = "SELECT COUNT(*) AS antalPoster2 FROM console"
tabell3 = "SELECT COUNT(*) AS antalPoster3 FROM games"
tabell4 = "SELECT COUNT(*) AS antalPoster4 FROM movies"
tabell5 = "SELECT COUNT(*) AS antalPoster5 FROM music"

Set RS1 = connect.Execute("tabell1")
set RS2 = connect.execute("tabell2")
Set RS3 = connect.Execute("tabell3")
set RS4 = connect.execute("tabell4")
Set RS5 = connect.Execute("tabell5")

Total = Clng(RS1("antalPoster1")) + Clng(RS2("antalPoster2")) + Clng(RS3("antalPoster3")) + Clng(RS4("antalPoster4")) + Clng(RS5("antalPoster5"))

response.write "<font color='red'>" & Total & "</font>"
connect.close

%>

och jag får forfarande samma fel:

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

[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

/bypath/total.asp, line 12

Fattar inte vad jag har gjort för fel med Sql uttrycket

Medlem sedan dec. 200012 464 inlägg
#16

glömde "" i RS.Execute("tabell1") osv

Nej, det skall inte vara så. Det skall vara som du skrivit först

RS.Execute(tabell1)

------------------
essentitia preter non sans multiplicandum

Medlem sedan okt. 2001208 inlägg
#17

Nu funkar det :) :) :)

Tack så mycket för hälpen LarsG och Nakoz

[Redigerat av cHeMiCaL-X den 14 okt 2001]

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)