Staffelpreise Abfrage

Hallo,

ich bin gerade an der Erweiterung meines Shops.
Leider hänge ich im Moment an der Abfrage zu den Staffelpreisen.

Ich habe folgende Tabelle mit den Spalten:

preis_id*
preis
ab_menge


Mein Problem ist nun wie muss ich die Abfrage aufbauen um bei einer
übergebenen Menge die der Kunde über den Shop gewählt hat, den korrekten
Preis herauszufinden.

Beispiel:
Kunde legt einen Artikel in den Warenkorb mit Menge 105.

Folgende Werte stehen in der Tabelle

preis_id preis ab_menge
1 0.5 1
2 0.4 100
3 0.3 1000
4 0.25 1500


Ich möchte nun den Preis mit der ID 2 = 0.4 herausbekommen als Ergebnis.

Mit Between und einer Tabelle klappt das irgendwie nicht.
Ich bräuchte einen Vergleich zwischen jeweils 2 Einträgen innerhalb
einer Tabelle.


Vielen Dank im Voraus,

Tobias
Tobias [ Mo, 14 April 2008 11:22 ] [ ID #1941962 ]

Re: Staffelpreise Abfrage

In article <ftv7nh$47h$01$1 [at] news.t-online.com>,
Tobias <btsms [at] arcor.de> writes:

> Hallo,

(Tobias wer? Hier gehören volle Namen zum guten Ton.)

> Ich habe folgende Tabelle mit den Spalten:

> preis_id*
> preis
> ab_menge


> Mein Problem ist nun wie muss ich die Abfrage aufbauen um bei einer
> übergebenen Menge die der Kunde über den Shop gewählt hat, den
> korrekten Preis herauszufinden.

> Beispiel:
> Kunde legt einen Artikel in den Warenkorb mit Menge 105.

> Folgende Werte stehen in der Tabelle

> preis_id preis ab_menge
> 1 0.5 1
> 2 0.4 100
> 3 0.3 1000
> 4 0.25 1500


> Ich möchte nun den Preis mit der ID 2 = 0.4 herausbekommen als Ergebnis.

> Mit Between und einer Tabelle klappt das irgendwie nicht.
> Ich bräuchte einen Vergleich zwischen jeweils 2 Einträgen innerhalb
> einer Tabelle.

Richtig, Du brauchst eine Zeile mit ab_menge <= 105, für die es keine
größere Zeile gibt, für die auch ab_menge <= 105 gilt:

SELECT p1.preis_id, p1.preis
FROM preise p1
LEFT JOIN preise p2 ON p2.ab_menge > p1.ab_menge
AND p2.ab_menge <= 105
WHERE p1.ab_menge <= 105
AND p2.preis_id IS NULL
Harald Fuchs [ Mo, 14 April 2008 11:57 ] [ ID #1941963 ]

Re: Staffelpreise Abfrage

* Tobias tat kund und zu wissen:

> Beispiel:
> Kunde legt einen Artikel in den Warenkorb mit Menge 105.

> Folgende Werte stehen in der Tabelle

> preis_id preis ab_menge
> 1 0.5 1
> 2 0.4 100
> 3 0.3 1000
> 4 0.25 1500

>
> Ich möchte nun den Preis mit der ID 2 = 0.4 herausbekommen als Ergebnis.

SELECT preis FROM preise
WHERE ab_menge<=105
ORDER BY ab_menge DESC LIMIT 1;

HTH,
Harald

--
Correspondence Corollary:
An experiment may be considered a success if no more than half
your data must be discarded to obtain correspondence with your theory.
Harald Wenninger [ Mo, 14 April 2008 11:58 ] [ ID #1941964 ]

Re: Staffelpreise Abfrage

Hallo,

Harald Wenninger schrieb:
> * Tobias tat kund und zu wissen:
>> Ich möchte nun den Preis mit der ID 2 = 0.4 herausbekommen als Ergebnis.
>
> SELECT preis FROM preise
> WHERE ab_menge<=105
> ORDER BY ab_menge DESC LIMIT 1;
>

Super, Vielen Dank so funktioniert es.

Gruss

Tobias
Tobias [ Mo, 14 April 2008 13:04 ] [ ID #1941966 ]
Datenbanken » de.comp.datenbanken.mysql » Staffelpreise Abfrage

Vorheriges Thema: Re: mysql 5 installation auf Vista schlaegt fehl
Nächstes Thema: slow query log leeren