webForumDet fria alternativet

varför fel?

ASP

5 svar · 225 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1
SQL = "select 1,count(*) as antal_mess from mess where username = '" & user &"' and read = false union all " &  _
"select 2,count(*) as antal_gb from gb where mott = '" & user &"' and last = false union all " & _
"select 3,count(*) as antal_kompis from kompisar where kompis = '" & user &"' and besvarad = false order by 1"
Set mess = databas.Execute(SQL)
  messantal = mess("antal_mess")
[b]  gbantal = mess("antal_gb")[/b]
  nyakompisar = mess("antal_kompis")
set mess = nothing

får felet:
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/voigtan/muffel/voigtmuffel/menu.asp, line 9

Medlem sedan juni 200032 967 inlägg
#2

När du använder Union får du ju inte med några fältnamn från annat än den första queryn.

Resultatet av queryn kommer se ut så här ungefär:

          antal_mess
--------  ---------------
1          100
2          200
3          300

Mvh

Medlem sedan juni 20019 519 inlägg
#3

hur ska jag göra då för att få som jag vill?

Medlem sedan juni 200032 967 inlägg
#4

movenext

Medlem sedan juni 200032 967 inlägg
#5

Eller slå ihop det till en enda query istället för att använda union.

SQL = "select count(*) as antal_mess, (select count(*) from gb where mott = '" & user &"' and last = false) as antal_gb, (select count(*) from kompisar where kompis = '" & user &"' and besvarad = false) as antal_kompis from mess where username = '" & user &"' and read = false"

Man ska icke krångla i onödan.

mvh

Medlem sedan juni 20019 519 inlägg
#6

tackar snabel

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)