Probleem:
waarden uit twee kolommen van een tabel wilt vermenigvuldigen.
Voorbeeld:
Onze database heeft een tabel met de naam purchase
met gegevens in de volgende kolommen:id
, name
, price
, quantity
, en discount_id
.
id | naam | prijs | hoeveelheid | discount_id |
---|---|---|---|---|
1 | pen | 7 | 3 | 1 |
2 | notebook | 5 | 8 | 2 |
3 | rubber | 11 | 3 | 1 |
4 | etui | 24 | 2 | 3 |
Laten we de prijs vermenigvuldigen met het aantal producten om erachter te komen hoeveel u voor elk artikel in uw bestelling heeft betaald.
Oplossing:
SELECT name, price*quantity AS total_price FROM purchase;
Deze zoekopdracht retourneert records met de naam van het product en de totale prijs:
naam | total_price |
---|---|
pen | 21 |
notebook | 40 |
rubber | 33 |
etui | 48 |
Discussie:
Moet u de naam van elk record selecteren (in ons geval name
) en bereken daarvoor het resultaat van het vermenigvuldigen van een numerieke kolom met een andere (price
en quantity
)? Het enige dat u hoeft te doen, is de vermenigvuldigingsoperator (*) tussen de twee vermenigvuldigtalen (price
) gebruiken * quantity
) in een simpele SELECT
vraag. Je kunt dit resultaat een alias geven met de AS
trefwoord; in ons voorbeeld hebben we de vermenigvuldigingskolom een alias gegeven van total_price
.
Merk op dat u ook gegevens uit twee kolommen uit verschillende tabellen kunt gebruiken. We hebben nog een tabel in onze database met de naam discount
met kolommen met de naam id
en value
; de laatste vertegenwoordigt het kortingspercentage op het artikel met de opgegeven ID.
id | waarde |
---|---|
1 | 10 |
2 | 20 |
3 | 30 |
Bekijk het onderstaande voorbeeld.
Oplossing:
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;
Dit is het resultaat:
naam | total_price |
---|---|
pen | 18.90 |
notebook | 32,00 |
rubber | 29.70 |
etui | 33,60 |
Zoals u kunt zien, is het vrij eenvoudig om waarden uit verschillende samengevoegde tabellen te vermenigvuldigen. In ons voorbeeld hierboven hebben we de prijs van elk product vermenigvuldigd met de hoeveelheid uit één tabel (purchase
) en vervolgens deze totale prijs vermenigvuldigd met het kortingspercentage met behulp van de discount
tafel.