Problem:
ønsker at gange værdier fra to kolonner i en tabel.
Eksempel:
Vores database har en tabel med navnet purchase
med data i følgende kolonner:id
, name
, price
, quantity
, og discount_id
.
id | navn | pris | mængde | rabat_id |
---|---|---|---|---|
1 | pen | 7 | 3 | 1 |
2 | notesbog | 5 | 8 | 2 |
3 | gummi | 11 | 3 | 1 |
4 | penalhus | 24 | 2 | 3 |
Lad os gange prisen med mængden af produkterne for at finde ud af, hvor meget du har betalt for hver vare i din ordre.
Løsning:
SELECT name, price*quantity AS total_price FROM purchase;
Denne forespørgsel returnerer poster med navnet på produktet og dets samlede pris:
navn | total_price |
---|---|
pen | 21 |
notesbog | 40 |
gummi | 33 |
penalhus | 48 |
Diskussion:
Skal du vælge navnet på hver post (i vores tilfælde name
) og beregne resultatet af at gange en numerisk kolonne med en anden (price
og quantity
)? Alt du skal gøre er at bruge multiplikationsoperatoren (*) mellem de to multiplikand-kolonner (price
* quantity
) i en simpel SELECT
forespørgsel. Du kan give dette resultat et alias med AS
søgeord; i vores eksempel gav vi multiplikationskolonnen et alias for total_price
.
Bemærk, at du også kan bruge data fra to kolonner, der kommer fra forskellige tabeller. Vi har en anden tabel i vores database ved navn discount
der har kolonner med navnet id
og value
; sidstnævnte repræsenterer den procentvise rabat på varen med det angivne ID.
id | værdi |
---|---|
1 | 10 |
2 | 20 |
3 | 30 |
Se på eksemplet nedenfor.
Løsning:
SELECT p.name, p.price*p.quantity*(100-d.value)/100 AS total_price FROM purchase p JOIN discount d ON d.id=p.discount_id;
Her er resultatet:
navn | total_price |
---|---|
pen | 18.90 |
notesbog | 32.00 |
gummi | 29.70 |
penalhus | 33.60 |
Som du kan se, er det ret nemt at multiplicere værdier fra forskellige sammenføjede tabeller. I vores eksempel ovenfor multiplicerede vi prisen på hvert produkt med dets mængde fra én tabel (purchase
) og gange derefter denne samlede pris med procentrabatten ved hjælp af discount
tabel.