webForumDet fria alternativet

Flera olika count i samma SQL?

6 svar · 315 visningar · startad av Bosse168

Bosse168Medlem sedan nov. 20031 019 inlägg
#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
%>
Engine^Medlem sedan dec. 20002 861 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."
Bosse168Medlem sedan nov. 20031 019 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

@ndersMedlem sedan juni 200026 914 inlägg
#4

Vilken version av MySQL används?

LarsGMedlem sedan dec. 200012 465 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
Bosse168Medlem sedan nov. 20031 019 inlägg
#6

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

LarsGMedlem sedan dec. 200012 465 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.

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb