webForumDet fria alternativet
Logga in / Bli medlem

Optimering av SQL fråga (TOP 5)

Databaser & SQL

3 svar · 197 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Trådstart#1

Hej,

Jag behöver få ut en summa av alla leveranser som har skett vecka x. Jag ska publisera de fem senaste veckornas leveranser. Går det att göra detta med en fråga eller måste jag köra flera?
Jag har gjort en mycket omständig lösning för detta nu och jag inser att det borde gå att få ut med en bättre SQL fråga istället.

Tabellen ser ut så här:
id | levdatum | etc...
1 | 2004-03-01
2 | 2004-03-01
3 | 2004-04-01
4 | 2004-04-01
5 | 2004-04-01

Jag vill få ut:
vecka 12 = 23 st
vecka 13 = 2 st
vecka 14 = 11 st
vecka 15 = 1 st
vecka 16 = 1 st

:moose

Medlem sedan maj 20012 080 inlägg
#2

Efter att ha tweakat till det lite mer så har jag kommit fram till följande lösning:

<% '*** Returnerar per week ***' 
function funReturnPerWeek(varWeek, varYear)
	sql = "SELECT COUNT(ID) AS [myCount] FROM T_order_n_tracking "
	sql = sql & " WHERE datepart('WW',orderdatum) = " &varWeek &" AND datepart('YYYY',orderdatum) = " &varYear 
	set rs = connect.execute(sql) 
	funReturnPerWeek = rs("myCount")
end function %>

Jag anropar den funktionen på sju ställen. Det tar ungefär två sekunder innan sidan laddas. Det borde gå att få det hela att gå snabbare tycker jag...

Medlem sedan dec. 20003 887 inlägg
#3

En fråga för att ta ut dom senaste 5 veckorna kan se ut såhär (DBMS = Access)

SELECT DatePart('ww', levdatum), Count(*)
FROM T_order_n_tracking
WHERE Year(levdatum) = Year(Date())
GROUP BY DatePart('ww', levdatum)
ORDER BY 1 DESC
Medlem sedan apr. 20022 743 inlägg
#4

mattiasnordin skrev:

Jag anropar den funktionen på sju ställen. Det tar ungefär två sekunder innan sidan laddas. Det borde gå att få det hela att gå snabbare tycker jag...

Anropa den bara en gång och spara det värdet i en variabel som du sedan skriver ut på de 7 ställerna.

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