jBourne242 10 Geschrieben 18. Februar 2012 Melden Teilen Geschrieben 18. Februar 2012 Hallo, ich habe in einer Datenbank u.a. folgende Felder: Kulanz, Mindermenge, Gewicht, Preis pro Kilogramm Nun benötige ich eine Abfrage, die als letztes Feld eine Summe (den Preis der Position) enthält. Die Summe ist je nach Feldbelegung jedoch anders. Wenn Kulanz = Wahr, dann ist Summe = 0 Wenn Mindermenge = Wahr, dann ist Summe = Preis pro kg Ansonsten ist Summe = Gewicht * Preis pro kg Kann mir da jemand Tipps geben? Vielen Dank sagt jBourne Zitieren Link zu diesem Kommentar
wiri 10 Geschrieben 18. Februar 2012 Melden Teilen Geschrieben 18. Februar 2012 Hi nehme diese Unions: select Kulanz, Mindermenge, Gewicht, Preis, 0 from Tabelle where Kulanz = true union select Kulanz, Mindermenge, Gewicht, Preis, Preis from Tabelle where Mindermenge = true union select Kulanz, Mindermenge, Gewicht, Preis,Gewicht * Preis from Tabelle where Kulanz <> true and Mindermenge <> true Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 26. Februar 2012 Melden Teilen Geschrieben 26. Februar 2012 Moin, das funktioniert so nicht mit den Unions. In dem Beispiel werden werden einige Zeilen doppelt im Ergebenis auftauchen (WHERE-Bedingungen sind nicht exakt) Übersichtlicher, ressourcensparender ist das mit CASE zu lösen. Für den MS-SQL-Server könnte das so aussehen (TRUE ist 1, FALSE ist 0 in einer Spalte vom Typ bit): SELECT Kulanz, Mindermenge, Gewicht, PreisproKg, Summe = CASE WHEN Kulanz = 1 THEN 0 WHEN Mindermenge = 1 THEN PreisproKg ELSE Gewicht * PreisproKg END FROM Tabelle Gruß Kai Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.