Oracle IF Abfrage für Ergebnisse

dhuuk42

Grünschnabel
Hallo liebe Gemeinde,

ich habe folgendes Problem. Wir führen eine Artikeldatenbank, für den Versand benötige ich je Artikel das Ausgangsvolumen. Da in unserer Datenbank sowohl Stück Abmessungen als auch Karton Abmessungen (sofern es einen Versandkarton gibt) erfasst werden benötige ich eine fallabhängige Volumenberechnung. Die Spalte "Order Unit" enthält die Werte St, Kt, Pak, Pal etc.

Für den Fall St müsste das Volumen wie folgt berechnet werden:
SQL:
Round(((case_width * case_depth * .case_height)/1000000), 3) as "Stück cbm",

Für die anderen Fälle wie folgt:
SQL:
Round(((piece_width * piece_depth * piece_height)/1000000), 3) as "VE cbm",

SQL:
select article_no,
       description_1,
       base_unit,
       order_unit,
       piece_width,
       piece_height,
       piece_depth,
       gross_piece_weight,
       case_width,
       case_height,
       case_depth,
       case_weight
  from tbl_article;

Die Frage ist nun, wie kann ich mit Hilfe einer Bedingung für die Splate order_unit, das korrekte Volumen je Artikel berechnen?

Beste Grüße und Danke,

dhuuk42
 
Moin dhuuk42,

diese "fallabhängige Bedingungen heissen in SQL genau so, nur auf englisch. Also CASE.

Beispiel für zwei Felder in der Ausgabe_
SQL:
SELECT article_no,
       description_1,
       base_unit,
       order_unit,
       case when order_unit ='St'
            then Round(((case_width  *  case_depth * .case_height)/1000000), 3)
       End AS "Stück cbm",
       case when order_unit<>'St'
            then Round(((piece_width * piece_depth * piece_height)/1000000), 3)
       END AS "VE cbm",
       piece_width,
       piece_height,
       piece_depth,
       gross_piece_weight,
       case_width,
       case_height,
       case_depth,
       case_weight
  FROM tbl_article
  ;

Grundsätzlicher Aufbau ist ist immer ein CASE WHEN bedingung THEN <bla> [ELSE <blubb>] END.

Grüße
Biber
 
Zurück