---
title: "Kan man göra detta med en SQL-fråga?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/157653-kan-man-göra-detta-med-en-sql-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "jme"
published: "2007-02-28T13:16:43.000Z"
updated: "2007-02-28T17:16:13.000Z"
replies: 8
views: 589
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/157653-kan-man-göra-detta-med-en-sql-fråga"
---

# Kan man göra detta med en SQL-fråga?

## #1 — jme, 2007-02-28T13:16Z

Jag har följande tables: orders, services och orders_services.

orders:
order_id

services:
service_id

orders_services:
order_id
service_id
amount

Exempeldata:

orders:

post #1: order_id = 5
post #2: order_id = 6
post #3: order_id = 7

services:

post #1: service_id = 1
post #2: service_id = 2
post #3: service_id = 3

orders_services:

post #1: order_id = 5, service_id = 1, amount = 4
post #2: order_id = 5, service_id = 2, amount = 10
post #3: order_id = 6, service_id = 2, amount = 1
post #4: order_id = 6, service_id = 3, amount = 2
post #5: order_id = 7, service_id = 1, amount = 4

Jag vill få ut alla de poster från orders, som har poster i orders_service och där sum(amount) \< 10.

Resultaten enligt exempeldatan:

post #2 (orders) (summa: 3 -\> 1 + 2)
post #3 (orders) (summa: 4)

post #1 ger en summa på 14 (4 + 10) så den får inte inkluderas i resultatet

Är detta möjligt att göra med en(1) SQL-sats? Jag kör med MySql.

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

## #2 — The_Hulk, 2007-02-28T13:49Z

vet inte om följande kod löser det.

```
select 
  o.order_id 
from 
  orders_services as os 
  join orders as o 
    on o.order_id=os.order_id 
where 
  sum(os.amount) < 10 
group 
  by os.order_id
```

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

## #3 — jme, 2007-02-28T13:55Z

Man får väl inte använda SUM() i WHERE-satsen?

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

## #4 — The_Hulk, 2007-02-28T14:01Z

får man inte?

testa det, fungerar det inte så kan du testa följande

```
select 
  o.order_id 
  sum(os.amount) as OSA
from 
  orders_services as os 
  join orders as o 
    on o.order_id=os.order_id 
where 
  OSA < 10 
group 
  by os.order_id
```

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

## #5 — jme, 2007-02-28T14:04Z

Jag får:

Unknown column 'OSA' in 'where clause'

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

## #6 — The_Hulk, 2007-02-28T14:59Z

testade du den första lösningen?
där SUM() fanns i where-satsen

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

## #7 — jme, 2007-02-28T15:02Z

Jo och det fungerade inte.

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

## #8 — LarsG, 2007-02-28T15:44Z

```
select o.order_id 
  from orders_services as os join orders as o 
    on o.order_id=os.order_id 
group by os.order_id
having sum(os.amount) < 10
```

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

## #9 — jme, 2007-02-28T17:16Z

LarsG: din version fungerar, tack!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/157653-kan-man-göra-detta-med-en-sql-fråga
