---
title: "Optimering av SQL fråga (TOP 5)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/101053-optimering-av-sql-fråga-top-5"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "mattiasnordin"
published: "2004-04-06T12:13:19.000Z"
updated: "2004-04-07T22:27:08.000Z"
replies: 3
views: 197
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/101053-optimering-av-sql-fråga-top-5"
---

# Optimering av SQL fråga (TOP 5)

## #1 — mattiasnordin, 2004-04-06T12:13Z

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

Permalänk: https://www.webforum.nu/p/101053

## #2 — mattiasnordin, 2004-04-06T13:13Z

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...

Permalänk: https://www.webforum.nu/p/1317797

## #3 — Engine^, 2004-04-07T06:39Z

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
```

Permalänk: https://www.webforum.nu/p/1318068

## #4 — Poffe, 2004-04-07T22:27Z

> **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.

Permalänk: https://www.webforum.nu/p/1318516

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/101053-optimering-av-sql-fråga-top-5
