webForumDet fria alternativet

Flera COUNT

ASP

8 svar · 310 visningar · startad av roady

Medlem sedan jan. 2002473 inlägg
Frågan#1

Jag försöker att räkna flera olika tabeller i samma SQL-sats.
Vill räkna från 3 tabeller och de skall inte vara beroende av varandra, men får inte direkt ihop det :(

är jag helt fel ute?

SQLcount = "SELECT Count(user.userID) AS AntaluserID FROM user UNION " & _
"SELECT Count(gallery.galleryID) AS AntalgalleryID FROM gallery UNION " & _
"SELECT Count(redaktor.redaktorID) AS AntalredaktorID FROM redaktor;"

objRS.Open SQLcount, objConnect, adOpenForwardOnly, adLockReadOnly, adCmdText
	Dim User, Gallery, Redaktor
	User = objRS("AntaluserID")
	Gallery = objRS("AntalgalleryID")
	Redaktor = objRS("AntalredaktorID")

Det är den här jag får fel på:
Gallery = objRS("AntalgalleryID")

Feltyp:
ADODB.Recordset (0x800A0CC1)
Objektet kunde inte hittas i mängden med det begärda namnet eller numret.
/webportal/admin/user_index.asp, line 36

Medlem sedan dec. 19996 721 inlägg
#2

UNION gör att du får tre rader i svaret, med endast en kolumn (som får namnet av den första sökningen)

Ersätt UNION med komma så borde det funka på stört

Medlem sedan jan. 2002473 inlägg
#3

Nja... sitter här och håller på att bli galen, plockat fram en stor SQL-bok utan att hitta något, kanske lite trött!

Va kan jag erstätta UNION med ?

Medlem sedan juni 200032 967 inlägg
#4

Ersätt UNION med komma så borde det funka på stört

Medlem sedan jan. 2002473 inlägg
#5

Har även försökt med:

SQLcount = "SELECT Count(user.userID) AS AntaluserID, Count(gallery.galleryID) AS AntalgalleryID FROM user, gallery;"

Men jag får samma svar på AntaluserID, AntalgalleryID...
Den har bara plusat ihop talen :(

Medlem sedan juni 200032 967 inlägg
#6

Fungerar inte denna:

SQLcount = "SELECT Count(user.userID) AS AntaluserID FROM user, " & _
"SELECT Count(gallery.galleryID) AS AntalgalleryID FROM gallery, " & _
"SELECT Count(redaktor.redaktorID) AS AntalredaktorID FROM redaktor;"

Mvh,

Medlem sedan jan. 2002473 inlägg
#7

Ledsen, var lite för snabb där...

testade:

SQLcount = "SELECT Count(user.userID) AS AntaluserID FROM user, " & _
"SELECT Count(gallery.galleryID) AS AntalgalleryID FROM gallery, " & _
"SELECT Count(redaktor.redaktorID) AS AntalredaktorID FROM redaktor;"

Men får bara:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i FROM-instruktion.
/webportal/admin/user_index.asp, line 21

Har även testat med;

SQLcount = "SELECT Count(user.userID) AS AntaluserID, " & _
"SELECT Count(gallery.galleryID) AS AntalgalleryID, " & _
"SELECT Count(redaktor.redaktorID) AS AntalredaktorID FROM user, gallery, redaktor;"

Men då får jag

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel. i frågeuttrycket 'SELECT Count(gallery.galleryID)'.
/webportal/admin/user_index.asp, line 21

Medlem sedan juni 200032 967 inlägg
#8

Hm, ja, det kanske blir lite knas. Svårt att se när man inte ser den kompletta SQL-frågan utskriven i ett sträck.

Prova så här i stället:

SQLcount = "SELECT Count(user.userID) AS AntaluserID, (SELECT Count(gallery.galleryID) FROM gallery)  AS AntalgalleryID , (SELECT Count(redaktor.redaktorID) FROM redaktor) AS AntalredaktorID FROM user"

Mvh,

Medlem sedan jan. 2002473 inlägg
#9

kanske blev lite lättare, funkar helt utmärkt,
nu blev jag jätteglad :e ... Du är ju kung!

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)