webForumDet fria alternativet

Få ihop två COUNT?

Databaser & SQL

7 svar · 263 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Frågan#1

Kan man på något smidigt sätt slå ihop dessa två counts och blir det snällare för servern?

Set Rs = Connect.Execute("SELECT COUNT(messageid) from mailin WHERE last=0 AND till='" & username & "'")
If not Rs.EOF Then
nytt=Rs(0)
End If
Rs.Close : Set Rs = Nothing

Set Rs = Connect.Execute("SELECT COUNT(ID) FROM gb WHERE  last=0 AND till='" & username & "'")
If not Rs.EOF Then
nytt = nytt + Rs(0)
End If
Rs.Close : Set Rs = Nothing
Medlem sedan dec. 20003 887 inlägg
#2
strSql = "SELECT Count(*), (SELECT COUNT(*) FROM gb WHERE last = 0 AND till = '" & username & "') " & _
         "FROM mailin " & _
         "WHERE last = 0 AND till = '" & username & "'"

Set Rs = Connect.Execute(strSql)

nytt = CLng(Rs(0)) + CLng(Rs(1))

Rs.Close : Set Rs = Nothing
Medlem sedan nov. 20031 018 inlägg
#3

Kan man få in denna också?

Set Rs = Connect.Execute("SELECT COUNT(username) FROM members Where status = 'online'")

online=Rs(0)

Rs.Close : Set Rs = Nothing

Obs annan variabel.

Medlem sedan nov. 20031 018 inlägg
#4

Märkte också att jag får detta fel mess när jag använder den SQL satsen.

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

[MySQL][ODBC 3.51 Driver][mysqld-4.0.20a-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT(*) FROM gb WHERE last = 0 AND till = 'bosse') FR

Medlem sedan nov. 20031 018 inlägg
#5

Ingen?

Medlem sedan dec. 20003 887 inlägg
#6

Du kan inte använda subselects i MySQL om du inte har version 4.1 och uppåt.

Du får helt enkelt köra tre frågor eller uppgradera. ;)

Medlem sedan nov. 20031 018 inlägg
#7

Version 4.1 är ju bara beta.
Funkar tidigare SQL satser i 4.1?

Medlem sedan nov. 20031 018 inlägg
#8

får detta felmeddelande när jag har uppgraderat till 4.1

Microsoft VBScript runtime error '800a000d'

Type mismatch

/logga_in.asp, line 104

strSQL="select count(*),min(datum) from inloggningar where slaf='"& killChars(secure(vem)) &"' LIMIT 1"
Set rstLogins=Connect.Execute(strSQL)
lngLogs=rstLogins(0)
datFirst=rstLogins(1)
rstLogins.Close : Set rstLogins=Nothing

If lngLogs<=15 Then '----------- rad 104
    strSQL="insert into inloggningar(memb, datum, status, ip) values ('"& secure(vem) &"',NOW(),'1','"& Request.ServerVariables("REMOTE_ADDR") &"')"
Else
    strSQL="UPDATE inloggningar set datum=Now(),status='1',ip='"& Request.ServerVariables("REMOTE_ADDR") &"' where memb='"& secure(vem) &"' and datum='" & datFirst & "' LIMIT 1"
End If
Connect.Execute strSQL,,128
258 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)