Danke für Eure Hilfe.
Ich habe schon eine nächste Herausforderung.
In einer Tabelle stehen Staffelpreis. Von den Staffelpreisen gibt es 2 Arten, einmal eine Rabattstaffel und einmal eine Preisstaffel.
Beide Typen können gleichzeitig existieren. In der Regel gib eine Rabattstaffel. Parallel dazu kann es eine zeitlich begrenze Preisstaffel
geben die eine höhere Priorität als die Rabattstaffel hat.
Die Tabelle dbo_staffelpreis sieht so aus
Die Abfrage sieht so aus, b.artikel_preis ist der Basispreis für die Berechnung:
Leider funktioniert das nicht wie ich es mir dachte, es wird immer nur der Preis für die Rabattstaffel ausgegeben, egal ob der typ 1 oder 2 ist.
Wenn es eine Preisstaffel innerhalb des definierten Zeitraums gibt, soll immer der Preis ausgegeben werden, ansonsten soll der Rabattpreis berechnet werden.
Wie mache ich das in einer Abfrage?
Gruß
Nevada
Ich habe schon eine nächste Herausforderung.
In einer Tabelle stehen Staffelpreis. Von den Staffelpreisen gibt es 2 Arten, einmal eine Rabattstaffel und einmal eine Preisstaffel.
Beide Typen können gleichzeitig existieren. In der Regel gib eine Rabattstaffel. Parallel dazu kann es eine zeitlich begrenze Preisstaffel
geben die eine höhere Priorität als die Rabattstaffel hat.
Die Tabelle dbo_staffelpreis sieht so aus
PHP Code:
id | artikelnr | typ | von | bis | menge | preis | rabatt
---------------------------------------------------------------------------------
1681954 91410208248 1 0000-00-00 0000-00-00 5 0.00 3.00
1681955 91410208248 1 0000-00-00 0000-00-00 10 0.00 5.00
1681956 91410208248 1 0000-00-00 0000-00-00 30 0.00 7.00
1681957 91410208248 1 0000-00-00 0000-00-00 60 0.00 10.00
1681958 91410208248 2 2015-09-01 2015-10-31 5 8.99 0.00
1681959 91410208248 2 2015-09-01 2015-10-31 10 8.50 0.00
1681960 91410208248 2 2015-09-01 2015-10-31 30 8.20 0.00
1681961 91410208248 2 2015-09-01 2015-10-31 60 7.99 0.00
PHP Code:
SELECT
b.artikel_preis,
CASE
when a.typ = 2 and CURDATE() BETWEEN von AND bis then min(distinct a.preis)
else min(distinct b.artikel_preis - ((b.artikel_preis * a.rabatt) / 100))
end as preis
from
dbo_staffelpreis a
INNER JOIN
dbo_artikel b
ON
a.artikelnr = b.artikel_nr
AND
a.artikelnr = '91410208248'
AND
a.menge <= 7
Wenn es eine Preisstaffel innerhalb des definierten Zeitraums gibt, soll immer der Preis ausgegeben werden, ansonsten soll der Rabattpreis berechnet werden.
Wie mache ich das in einer Abfrage?
Gruß
Nevada
Comment