Hallo,

Ik heb een tabel en hier staat het volgende in:
drank: prijs
frisdrank 1.50
wijn 2.75
bier 2.00
thee 1.00
koffie 1.00

De bedoeling is dat de prijs van het frisdrank met 5% wordt verlaagd en alle andere prijzen worden met 7% verlaagd.

Ik heb geprobeerd om dit met een subquery en zonder subquery te maken, maar ik krijg die 7% verlaging niet uitgerekend.
Verder gebruik ik mysql.

ik heb nu dit:

select prijs, prijs*0.95 as verlaagd, prijs*0.93 as verlaagd
from voorraad
where drank = 'frisdrank';

en

select prijs, prijs*0.95 as verlaagd
from voorraad
where drank = 'frisdrank'
and prijs in (
select prijs*0.93 as verlaagd
from voorraad
where not soort = 'frisdrank');

mijn vraag is: hoe kan ik twee verschillende percentages uitrekenen?

alvast bedankt
select prijs, prijs*0.95 as verlaagd, prijs*0.93 as verlaagd

Misschien moet je ze niet dezelfde naam geven.
ok, heb getest en zie geen verschil,
kun je met subqueries wel rekenen?
Wat zijn de condities voor het verlagen van prijzen? Zijn deze tijdelijk? Permanent? Waar hangen deze vanaf?
dit is tijdelijk en daarom wil ik dit in een query zetten met een as.
ik wil dit dus niet permanent in de database vervangen.
Je hoeft niet met subqueries te werken maar kan een control flow statement gebruiken.
Met andere woorden gebaseerd op de waarde van de kolom drank de factor veranderen:

SELECT
	prijs,
	ROUND(prijs * CASE drank
		WHEN 'frisdrank' THEN 0.95
		ELSE 0.93 END, 2) AS verlaagd,
	IF(drank = 'frisdank', 0.95, 0.93) AS factor
FROM
	voorraad

De methode met CASE is standaard SQL, de IF is MySQL specifiek
De simpelste manier zoals je het op papier doet :

SELECT
	drank,
	prijs,
	round( prijs * 0.95 * ( drank  = 'frisdrank' ), 2) as verlaagd95,
	round( prijs * 0.97 * ( drank <> 'frisdrank' ), 2) as verlaagd97
FROM
	voorraad

Reageren