Mahlzeit Fletch,
Warum denn gleich einen Seitehieb auf mich? Habe ich was falsch gemacht bei meiner Frage?
Bei der Frage nicht - eher beim Tabellendesign.
Das "case" geht in Ordnung, ich habe der Übersichtlichkeit halber die restlichen Fälle aus der Abfrage herausgelassen. Durch 100 teilen hätte da nicht gegriffen.
Das CASE geht eben *nicht* in Ordnung:
CASE
WHEN Multi = '100' THEN 1
WHEN Multi = '125' THEN 1.25
END
Du schriebst, dass in der Spalte "Multi" noch weitere Werte enthalten sein können. Da Du diese nicht in Deinem CASE berücksichtigt hast, erwartest Du also von Deinem DBMS, dass es dann nicht 1 und auch nicht 1.25, sondern irgendetwas anderes zurückgibt ... aber was? Du solltest also noch einen ELSE-Zweig einbauen.
Trotz alledem kann man suit aber eigentlich nur Recht geben: ein VARCHAR-Feld zu nehmen und dort Strings, die Zahlenwerte enthalten, zu speichern und dann mit einem derartigen CASE-Konstrukt einen Multiplikator zu ermitteln ist gelinde gesagt wirklich "von hinten durch die Brust ins Auge".
Ich habe mich sicher falsch ausgedrückt. Aber die Sache ist so:
Tabelle Artikel:
ID|Warenkorb_ID|Menge|Preis|Nachlass|Multi|...Tabelle Warenkorb:
ID|User_ID|Datum|Warenkorb_Nachlass|...
Aha ... und jetzt? Wo genau möchtest Du jetzt wieviel Rabatt/Nachlass gewähren? Du solltest nicht nur die Namen der Spalten, sondern auch ihre Datentypen nennen und zusätzlich einige Beispieldatensätze (beider Tabellen!), damit man nachvollziehen kann, was Du hast und was Du erreichen willst.
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|