---
title: "Lite problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/174204-lite-problem"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Asa"
published: "2008-09-19T22:42:18.000Z"
updated: "2008-09-20T14:45:33.000Z"
replies: 6
views: 524
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/174204-lite-problem"
---

# Lite problem

## #1 — Asa, 2008-09-19T22:42Z

Har en shop där jag nu vill visa lite statistik och då vill jag visa den dyraste order och dess summa. Jag kommer även sen hämta med namn m.m men det jag inte förstår är hur jag hämtar ut den med högsta värdet. Har ej sql sträng som hämtar alla och skriver ut.

```
Select ord.ordernr, sum(ord.antal*p.pris) as total
From orderrad ord, produkt p
Where ord.artnr=p.artnr
group by ord.ordernr;
```

Tabellerna

```
orderrad:
 - oID
 - ordernr
 - artnr
 - antal

produkt:
 - artnr
 - namn
 - pris
```

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

## #2 — aasah, 2008-09-19T23:25Z

Pröva:

```
SELECT max(total) FROM (
   Select ord.ordernr, sum(ord.antal*p.pris) as total
   From orderrad ord, produkt p
   Where ord.artnr=p.artnr
   group by ord.ordernr
) AS F;
```

Notera att du MÅSTE döpa subuttrycket i FROM-klausulen! Tex till "F".

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

## #3 — Asa, 2008-09-20T08:33Z

Funkar perfekt men det skriver inte ut ordernummer. Hur gör jag det oxå? Har testat en massa men får det ej att funka.

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

## #4 — aasah, 2008-09-20T13:37Z

Tyvärr måste du trassla för att få det att funka, du kan inte plocka ut ett aggregerande värde ihop med en vanlig kolumn utan att gruppera på den vanliga kolumnen. Och du vill ju få ut max-värdet för alla, inte maxvärdet per order. Man kan göra på lite olika sätt:

```
CREATE VIEW Totalpris (ordernr, total) AS   -- eller använd temptabell
Select ord.ordernr, sum(ord.antal*p.pris)
From orderrad ord, produkt p
Where ord.artnr=p.artnr
group by ord.ordernr

SELECT ordernr, total 
FROM Totalpris
WHERE total = (SELECT max(total) FROM Totalpris)

DROP VIEW Totalpris -- Om du inte vill ha den kvar...
```

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

## #5 — Peter S, 2008-09-20T14:34Z

```
Select top 1 ord.ordernr, sum(ord.antal*p.pris) as total
From orderrad ord, produkt p
Where ord.artnr=p.artnr
group by ord.ordernr
order by 2 desc;
```

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

## #6 — Asa, 2008-09-20T14:43Z

Top 1 funkar inte i mitt fall.

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

## #7 — Peter S, 2008-09-20T14:45Z

> **Asa skrev:**
>
> Top 1 funkar inte i mitt fall.

Därför att? Är det en annan DBMS får du väl använda motsvarigheten, t.ex. LIMIT i MySQL:

```
Select ord.ordernr, sum(ord.antal*p.pris) as total
From orderrad ord, produkt p
Where ord.artnr=p.artnr
group by ord.ordernr
order by 2 desc
limit 1;
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/174204-lite-problem
