webForumDet fria alternativet
Logga in / Bli medlem

Flera olika count i samma SQL?

Databaser & SQL

6 svar · 315 visningar · startad av Bosse168

Medlem sedan nov. 20031 018 inlägg
Trådstart#1

Kan man göra alla dessa count i samma SQL och bara ha en RecSet?

<%
Set rsNya = Connect.Execute("select COUNT(ID) from humor_historier where visa=1 AND datum>'" & DateAdd("d",-1,Date()) & "'")

Response.Write(""& rsNya(0) &" nya idag.<br>")
rsNya.Close : Set rsNya = Nothing

Set rsNya = Connect.Execute("SELECT COUNT(id) AS Antal FROM humor_historier Where visa = '1'")
Response.Write(""& rsNya("Antal") &" skämt totalt.<br>")
rsNya.Close : Set rsNya = Nothing

Response.Write("<strong>Fusk:<br></strong>")
'-------------- Fusk
Set rsNya = Connect.Execute("select COUNT(ID) from spel_fusk where visa=1 AND datum>'" & DateAdd("d",-1,Date()) & "'")

Response.Write(""& rsNya(0) &" nya idag.<br>")
rsNya.Close : Set rsNya = Nothing

Set rsNya = Connect.Execute("SELECT COUNT(ID) AS Antal FROM spel_fusk Where visa = '1'")
Response.Write(""& rsNya("Antal") &" fusk totalt.<br>")
rsNya.Close : Set rsNya = Nothing

Response.Write("<strong>Online spel:<br></strong>")
'-------------- OnlineSpel

Set rsNya = Connect.Execute("SELECT COUNT(ID) AS Antal FROM spel_online Where visa = '1'")
Response.Write(""& rsNya("Antal") &" spel totalt.<br>")
rsNya.Close : Set rsNya = Nothing
%>
Medlem sedan dec. 20003 887 inlägg
#2

Jupp. Ett bantat exempel:

SELECT Count(ID)
  , (SELECT Count(ID) FROM humor_historier WHERE visa = '1') AS intAntal
  , (SELECT Count(ID) FROM spel_fusk WHERE visa = '1' AND datum > '" & DateAdd("d", -1, Date()) & "') AS intAntalFusk
FROM humor_historier
WHERE visa = '1' AND datum > '" & DateAdd("d", -1, Date())
& "'"

Sedan är det bara att skriva ut svaren... ;)

Response.Write "<strong>Historier: " & rsNya(0) & " nya idag.</strong>"
Response.Write "<br><strong>Fusk: " & rsNya("intAntalFusk") & " stycken fusk."
Medlem sedan nov. 20031 018 inlägg
#3

fär det här fel messet:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'

[TCX][MyODBC]You have an error in your SQL syntax near 'SELECT Count(ID) FROM humor_historier WHERE visa = '1') AS intAntal, (SELECT Cou' at line 1

Medlem sedan juni 200032 967 inlägg
#4

Vilken version av MySQL används?

Medlem sedan dec. 200012 464 inlägg
#5

Med Mysql kan du få flera count i en fråga så länge det gäller samma tabell

select COUNT(*),sum(case when datum > 
current_date - interval 1 day then 1 else 0 end)
 from humor_historier 
where visa=1
Medlem sedan nov. 20031 018 inlägg
#6

MySQL 3.xx någonting.
Och det rör inte samma tabeller.

Medlem sedan dec. 200012 464 inlägg
#7

Och det rör inte samma tabeller.

Ja ja, jag menade bara att några av frågorna går att kombinera, dock inte alla.

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)