jBourne242 10 Geschrieben 18. Februar 2012 Melden 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
wiri 10 Geschrieben 18. Februar 2012 Melden 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
hh2000 10 Geschrieben 26. Februar 2012 Melden 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden