webForumDet fria alternativet

Räkna ihop massa grejer - Part2.

Databaser & SQLur Databashanterare & SQL

4 svar · 373 visningar · startad av oskars

Medlem sedan nov. 20051 317 inlägg
Frågan#1

Hejsvejs!

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! :)

Medlem sedan dec. 200012 464 inlägg
#2

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

usw

Medlem sedan nov. 20051 317 inlägg
#3

Mycket fint, må jag säga!

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?

Tack för att du tar dig tid!

Medlem sedan dec. 200012 464 inlägg
#4

Tjänar man in någon laddningstid om man bygger in frågor från olika tabeller i samma SQL-fråga.

Kanske, kanske inte. Det beror på.

Medlem sedan nov. 20051 317 inlägg
#5

Okej (y) Tack för hjälpen! :bire

138 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)