hoe 2 verschillende percentages berekenen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Jansen

Robert Jansen

02/05/2017 18:34:53
Quote Anchor link
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
 
PHP hulp

PHP hulp

29/04/2024 03:04:40
 
- SanThe -

- SanThe -

02/05/2017 19:00:21
Quote Anchor link
select prijs, prijs*0.95 as verlaagd, prijs*0.93 as verlaagd

Misschien moet je ze niet dezelfde naam geven.
 
Robert Jansen

Robert Jansen

02/05/2017 19:07:57
Quote Anchor link
ok, heb getest en zie geen verschil,
kun je met subqueries wel rekenen?
 
Thomas van den Heuvel

Thomas van den Heuvel

02/05/2017 19:42:54
Quote Anchor link
Wat zijn de condities voor het verlagen van prijzen? Zijn deze tijdelijk? Permanent? Waar hangen deze vanaf?
 
Robert Jansen

Robert Jansen

02/05/2017 19:52:07
Quote Anchor link
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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/05/2017 21:17:01
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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

De methode met CASE is standaard SQL, de IF is MySQL specifiek
 
Adoptive Solution

Adoptive Solution

02/05/2017 21:46:14
Quote Anchor link
De simpelste manier zoals je het op papier doet :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
Gewijzigd op 02/05/2017 21:46:40 door Adoptive Solution
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.