hoe 2 verschillende percentages berekenen?
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
Misschien moet je ze niet dezelfde naam geven.
kun je met subqueries wel rekenen?
Wat zijn de condities voor het verlagen van prijzen? Zijn deze tijdelijk? Permanent? Waar hangen deze vanaf?
ik wil dit dus niet permanent in de database vervangen.
Met andere woorden gebaseerd op de waarde van de kolom drank de factor veranderen:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
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
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
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT
drank,
prijs,
round( prijs * 0.95 * ( drank = 'frisdrank' ), 2) as verlaagd95,
round( prijs * 0.97 * ( drank <> 'frisdrank' ), 2) as verlaagd97
FROM
voorraad
drank,
prijs,
round( prijs * 0.95 * ( drank = 'frisdrank' ), 2) as verlaagd95,
round( prijs * 0.97 * ( drank <> 'frisdrank' ), 2) as verlaagd97
FROM
voorraad
Gewijzigd op 02/05/2017 21:46:40 door Adoptive Solution