hoe 2 verschillende percentages berekenen?
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
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.
Misschien moet je ze niet dezelfde naam geven.
ok, heb getest en zie geen verschil,
kun je met subqueries wel rekenen?
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.
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:
De methode met CASE is standaard SQL, de IF is MySQL specifiek
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
De simpelste manier zoals je het op papier doet :
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




