Ich habe eine Tabelle mit Preisen. Hier ein Ausschnitt davon:
Wie man aus der Tabelle erkennt gibt es eine Zeile in der eine Kundennummer angegeben ist. Der Kunde bekommt bei diesem Artikel und der Anzahl den angegeben Preis. Bei allen anderen Mengen bekommt er die normale Preis.
Wie kann ich das in einem MySQL-Statement unterbringen, sodass jede Anzahl nur einmal erscheint, jedoch wenn die Kundennnummer in der Tabelle vorkommt auch dieser Preis gewählt wird und nicht der normale Stückpreis?
Meine bereits getesteten Statements gebe ich auch mal an. Leider weiß ich nun wirklich nicht mehr weiter. Vielleicht könnt ihr mir einen Tipp zu dem simplen Problem geben.
PHP-Code:
kundennumm | artikelnum | preisgruppe | anzahl | preis
| 10121 | 1 | 1 |102.500
66130 | 10121 | 1 | 1 | 10.000
| 10121 | 1 | 3 |99.397
| 10121 | 1 | 5 |97.328
Wie kann ich das in einem MySQL-Statement unterbringen, sodass jede Anzahl nur einmal erscheint, jedoch wenn die Kundennnummer in der Tabelle vorkommt auch dieser Preis gewählt wird und nicht der normale Stückpreis?
Meine bereits getesteten Statements gebe ich auch mal an. Leider weiß ich nun wirklich nicht mehr weiter. Vielleicht könnt ihr mir einen Tipp zu dem simplen Problem geben.
PHP-Code:
// 1.
SELECT *
FROM preisliste
WHERE artikelnum = '10121'
AND preisgruppe = 1
OR kundennumm = '66130'
GROUP BY anzahl
ORDER BY anzahl ASC
// 2.
SELECT *
FROM preisliste
WHERE artikelnum = '10121'
AND preisgruppe = 1
UNION
SELECT *
FROM preisliste
WHERE artikelnum = '10121'
AND preisgruppe = 1
AND kundennumm = '66130'
ORDER BY kundennumm DESC, anzahl ASC
// 3.
SELECT *
FROM preisliste
WHERE artikelnum = '10121'
AND preisgruppe = 1
AND anzahl NOT IN (
SELECT *
FROM preisliste
WHERE artikelnum = '10121'
AND preisgruppe = 1
AND kundennumm = '66130'
)
ORDER BY anzahl ASC
Kommentar