---
title: "större än"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/47997-större-än"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "pellsäter"
published: "2002-07-16T06:38:17.000Z"
updated: "2002-07-17T23:24:24.000Z"
replies: 20
views: 441
page: 1
pages: 2
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/47997-större-än"
---

# större än

_Sida 1 av 2._

## #1 — pellsäter, 2002-07-16T06:38Z

klurigt värre!!

Har en tabell "kunder" med fälten namn, adress, epost

Har en tabell "orderRadold med fälten orderID,prodID, epost, antal, datum

Har en tabell "produkter" med fälten prodID,pris,bild,beskrivning

Nu vill jag ha fram alla kunder som handlat för mer än 2.000:-

hur skriver jag den SQL satsen

Webforum är så otroligt bra när man vill lära sig nåt......

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

## #2 — skyman, 2002-07-16T06:46Z

select ku.Namn from produkter.pr 
inner join orderRadold ra on pr.prodID=ra.prodID 
inner join kunder ku on ra.epost=ku.epost 
where pr.pris \> 2000 
Kanske.... :)

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

## #3 — pellsäter, 2002-07-16T06:48Z

nja för pris anger bara vad produkten kostar per st... och jag behöver veta vad kunden har köpt för allt sammans

Alltså behöver jag koppla ihop så att jag ser vilka ordrar som kunden lagt.. vilka produkter han köpt och hur många av varje produkt och slå ihop det till en summa som jag sedan ska kolla om den överstiger 2000 kr

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

## #4 — hogdefoo, 2002-07-16T06:49Z

Hej,

Är den enda koppling person - order epost ??

Sen undrar jag om det inte är bättre att ha priset på produkten i orderradstabellen ochså..
Tänk dig följande senario:
Jag köper produkter av dig för 1670:-
Efter två  månader höjs priset på dessa produkter till 2234:-

Om du inte har priset i orderraden utan en koppling till prodID så kommer ju jag hamna i den grupp som har handlat för mer än 2000:- fast jag inte har det....

Bara en fundering

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

## #5 — skyman, 2002-07-16T06:52Z

select pr.pris, ku.namn, pr.prodID from produkter.pr 
inner join orderRadold ra on pr.prodID=ra.prodID 
inner join kunder ku on ra.epost=ku.epost 
group by ku.namn
Sen så sköter du resten med asp :)

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

## #6 — pellsäter, 2002-07-16T06:54Z

det skapas ett orderID också men det är ju inte personkopplat........

epost finns med i både "kunder" och "orderRadold"

Det med priset är inte dumt tänkt alls..... 

Hur skulle selectsatsen se ut med det??

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

## #7 — Lasp, 2002-07-16T06:55Z

Du bör absolut ha en orderpost med kundid.
Du skall sedan ta med priset till oderraden.
Är det sedan det sammalgda värdet du vill åt?

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

## #8 — pellsäter, 2002-07-16T07:03Z

det skapas ett kundID när man köper något första gången....

Jap det sammanlagda värdet för en kunds alla ordrar....

Ok om jag då lägger in en kolumn i orderRadold som heter summa som innehåller varje beställd varas pris... alltså om personen beställt 4 st av något så är det den sammanlagda summan som står  där...

hur tar jag då fram alla kunder som beställt mer för mer än 2000

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

## #9 — pellsäter, 2002-07-16T12:38Z

jag hoppas att någon kommer med nåt br svar

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

## #10 — agneta_rung, 2002-07-16T18:26Z

Hej!

select k.namn, sum(o.antal \* p.pris) summa
from kunder k, orderradoid o, produkter p
where k.epost = o.epost 
and o.prodID = p.prodID
and summa \> 2000
group by namn

Denna fråga utgår från de tabelldefinitioner du skrev i första inlägget.

När jag testkör den mot en Interbase-db funkar inte villkoret på kolumnalias (dvs "and summa \> 2000"), men jag har bestämt för mig att jag skrivit liknande i exv SQLServer... Annars kanske du kan ta bort detta villkor och behandla resultatet i kod?

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

## #11 — LarsG, 2002-07-16T20:31Z

```
select k.namn, sum(o.antal * p.pris) summa 
from kunder k, orderradoid o, produkter p 
where k.epost = o.epost 
and o.prodID = p.prodID 
group by namn 
having sum(o.antal * p.pris) > 2000
```

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

## #12 — agneta_rung, 2002-07-16T20:35Z

Hmm, så var det ja!! :D

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

## #13 — pellsäter, 2002-07-17T06:22Z

får det inte att funka...

det är säkert nåt fel men fnuttar

sql = "select k.fnamn, k.enamn, sum(o.antal \* p.pris) summa from kunder k, orderRadold o, produkter p where k.epost = o.epost and o.artikelID = p.prodID group by k.enamn having sum(o.antal \* p.pris) \> 2000"

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

## #14 — LarsG, 2002-07-17T20:27Z

Vad får du för fel?

Hur ser sql-frågan ut om du skriver ut den skärmen?

```
sql = ...
response.write "SQL>" & sql & "<br>"
response.end
```

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

## #15 — pellsäter, 2002-07-17T21:14Z

SQL\>select k.fnamn, k.enamn, sum(o.antal \* p.pris) summa from kunder k, orderRadold o, produkter p where k.epost = o.epost and o.artikelID = p.prodID group by k.enamn having sum(o.antal \* p.pris) \> 2000

så ser den ut

och felet ser ut så här

ADODB.Recordset.1 error '80004005' 

SQLState: 37000
Native Error Code: -3100
\[INTERSOLV\]\[ODBC SequeLink driver\]\[ACCESS\]\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error (missing operator) in query expression 'sum(o.antal \* p.pris) summa'.

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

## #16 — agneta_rung, 2002-07-17T21:55Z

Hej!

Du måste ha med alla selekterade kolumner i "group by"-klausulen. Det ska alltså vara så här:

select k.fnamn, k.enamn, sum(o.antal \* p.pris) summa 
from kunder k, orderRadold o, produkter p 
where k.epost = o.epost and o.artikelID = p.prodID 
group by k.fnamn, k.enamn 
having sum(o.antal \* p.pris) \> 2000

Jag håller tummarna! :h

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

## #17 — LarsG, 2002-07-17T21:56Z

Om du testar att lägga till AS då?

```
sql = "select k.fnamn, k.enamn, sum(o.antal * p.pris) AS summa from kunder k, orderRadold o, produkter p 
where k.epost = o.epost and o.artikelID = p.prodID group by k.fnamn,k.enamn having sum(o.antal * p.pris) > 2000"
```

Det skall egentligen inte behövas enligt standard, men tyvärr så har alla DBMS sina egenheter och standardavvikelser.

Red: lade till k.fnamn i group by också.

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

## #18 — agneta_rung, 2002-07-17T21:59Z

...eller ta bort det!? Det används ju inte till något...

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

## #19 — pellsäter, 2002-07-17T22:41Z

inte riktigt bra än..

jag fick detta felet nu

ADODB.Recordset.1 error '80004005' 

SQLState: 07001
Native Error Code: -3010
\[INTERSOLV\]\[ODBC SequeLink driver\]\[ACCESS\]\[Microsoft\]\[ODBC Microsoft Access Driver\] Too few parameters. Expected 1.

sql ser ut så här nu

select k.fnamn, k.enamn, sum(o.antal \* p.pris) AS summa from kunder k, orderRadold o, produkter p where k.epost = o.epost and o.artikelID = p.prodID group by k.fnamn,k.enamn having sum(o.antal \* p.pris) \> 2000

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

## #20 — LarsG, 2002-07-17T23:02Z

Då är det något kolumnnamn som inte stämmer med din tabelldefinition.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/47997-större-än  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/47997-större-än/page2.md
