---
title: "Ta fram de mest beställda varorna ur inkomna beställningar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/104213-ta-fram-de-mest-beställda-varorna-ur-inkomna-beställningar"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Grillcliff"
published: "2004-05-24T08:05:25.000Z"
updated: "2004-05-24T08:54:13.000Z"
replies: 4
views: 438
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/104213-ta-fram-de-mest-beställda-varorna-ur-inkomna-beställningar"
---

# Ta fram de mest beställda varorna ur inkomna beställningar

## #1 — Grillcliff, 2004-05-24T08:05Z

Hej,

Hur kan en simpel SQL-stäng vars uppgift är att ta ut (a)id för de mest köpta varorna i en webbutik se ut?

Tabellen (order_products) ser ut som följer:

```
aid	product		amount	price (vid köptillfället, därför behövs länkning - se nedan)

1	Björn		2	*
1	Björn		1	*
1	Björn		1	*

2	Gorilla		2	*
2	Gorilla		3	*

3	Krokodil	6	*
```

Resultatet bör bli: 3, 2, 1 och dessa nummer bör i sin tur länkas mot tabellen products för att ta fram products.price och vid närmare eftertanke kanske även products.product

I skrivande stund gäller det Access, men eftersom det kan bli aktuellt med MySQL-konvertering i framtiden vore det kalas ifall Access-specifika kommandon kunde utlämnas i största möjliga mån :)

Med vänlig hälsning,
Fredrik

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

## #2 — LarsG, 2004-05-24T08:08Z

```
select aid
from order_products
group by aid
order by sum(amount) desc
```

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

## #3 — Grillcliff, 2004-05-24T08:21Z

Hoppsan, det var så simpelt. Var slänger man in INNER JOIN eller vad man använder sig av för att få ut products.product och products.price?

Den skall alltså plocka poster där order_products.aid = products.id

**Edit:**
Är detta en bit på vägen?

SQL = "SELECT op.aid, op.amount, p.id, p.price FROM order_products op LEFT OUTER JOIN products p ON op.aid = p.id GROUP BY op.aid ORDER BY sum(op.amount) DESC, op.amount, p.price, p.id"

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

## #4 — LarsG, 2004-05-24T08:49Z

```
SELECT op.aid, p.price, p.product 
FROM order_products op INNER JOIN products p 
ON op.aid = p.id 
GROUP BY aid, p.price, p.product 
ORDER BY sum(amount) DESC
```

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

## #5 — Grillcliff, 2004-05-24T08:54Z

Tack än en gång för all hjälp. Jag var nog nära på det själv, men det ville sig inte ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/104213-ta-fram-de-mest-beställda-varorna-ur-inkomna-beställningar
