Blä för att få fram massa snabba siffror från MySQL. Jag fick hjälp i en annan tråd med att hämta siffror snabbt.
Ja, ni ser ju hur min nuvarande lösning ser ut här nedan :r Jag har lärt mig hur man gör för att enkelt hämta beroende på om t.ex KOrder = 1 eller = 2 osv... men inte när man har så många olika argument i SQL-frågorna...
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=; DATABASE=; UID=;PASSWORD=; OPTION=3"
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Adresser2006 WHERE Projekt = "&Session("Projekt")&" AND sID ='"&Session("userID")&"' AND AK = 0 AND GS = 0 AND KOrder = 0")
intMinaAdresser = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Adresser2006 WHERE sID ='"&Session("userID")&"' AND AK = 1")
intMinaAK = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Adresser2006 WHERE Projekt = "&Session("Projekt")&" AND sID ='"&Session("userID")&"' AND GS = 1")
intMinaNejKunder = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Adresser2006 WHERE sID ='"&Session("userID")&"' AND KOrder = 1")
intMinaOrdrar = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Adresser2006 WHERE sID ='"&Session("userID")&"' AND KOrder = 3")
intMinaAtgardas = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Arkiv WHERE sID ='"&Session("userID")&"' AND KOrder = 33")
intMinaReturer = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Arkiv WHERE sID ='"&Session("userID")&"' AND GS = 2")
intNejTillKompl = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Arkiv WHERE sID ='"&Session("userID")&"' AND KOrder = 44")
intMinaAA = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM ArkivUtanOrdernummer WHERE sID ='"&Session("userID")&"' AND KOrder = 44")
intMinaAA = CInt(intMinaAA) + CInt(oCount("antal"))
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM arkivutanordernummer WHERE sID ='"&Session("userID")&"' AND KOrder = 2")
intMinaTelefonanger = CInt(oCount("antal"))
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM arkiv WHERE sID ='"&Session("userID")&"' AND KOrder = 2")
intMinaTelefonanger = CInt(intMinaTelefonanger) + CInt(oCount("antal"))
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Arkiv WHERE KOrder = 3 AND sID ='"&Session("userID")&"'")
intMinaReturOK = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM ArkivUtanOrdernummer WHERE KOrder = 5 AND sID ='"&Session("userID")&"'")
intMinaEjGodkanda = oCount("antal")
set oCount = Conn.Execute("SELECT COUNT(*) AS antal FROM Arkiv WHERE KOrder = 6 AND sID ='"&Session("userID")&"'")
intMinaSlutbetalda = oCount("antal")
oCount.close
set oCount=nothing
%>
Vore tacksam om någon skulle vilja förklara och visa hur jag ska göra för att snabba upp hämtningen av alla siffror! :)
Du kan fylla på med flera caseuttryck om det är samma tabell, dvs
sELECT sum(case when Projekt = "&Session("Projekt")&"
AND sID ='"&Session("userID")&"'
AND AK = 0
AND GS = 0
AND KOrder = 0 then 1 else 0 end) as a1,
sum(case when sID ='"&Session("userID")&"'
AND AK = 1 then 1 else 0 end) as a2
FROM Adresser2006
Tjänar man in någon laddningstid om man bygger in frågor från olika tabeller i samma SQL-fråga. Eller går det lika fort att göra 1st fråga för varje tabell?