1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Oracle IF Abfrage für Ergebnisse

Dieses Thema im Forum "Relationale Datenbanksysteme" wurde erstellt von dhuuk42, 11. Oktober 2017.

  1. dhuuk42

    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:
    Code (SQL):
    1. Round(((case_width * case_depth * .case_height)/1000000), 3) AS "Stück cbm",
    Für die anderen Fälle wie folgt:
    Code (SQL):
    1. Round(((piece_width * piece_depth * piece_height)/1000000), 3) AS "VE cbm",
    Code (SQL):
    1. SELECT article_no,
    2.        description_1,
    3.        base_unit,
    4.        order_unit,
    5.        piece_width,
    6.        piece_height,
    7.        piece_depth,
    8.        gross_piece_weight,
    9.        case_width,
    10.        case_height,
    11.        case_depth,
    12.        case_weight
    13.   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
     
  2. Biber3

    Biber3 Erfahrenes Mitglied

    Moin dhuuk42,

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

    Beispiel für zwei Felder in der Ausgabe_
    Code (SQL):
    1. SELECT article_no,
    2.        description_1,
    3.        base_unit,
    4.        order_unit,
    5.        CASE WHEN order_unit ='St'
    6.             THEN Round(((case_width  *  case_depth * .case_height)/1000000), 3)
    7.        END AS "Stück cbm",
    8.        CASE WHEN order_unit<>'St'
    9.             THEN Round(((piece_width * piece_depth * piece_height)/1000000), 3)
    10.        END AS "VE cbm",
    11.        piece_width,
    12.        piece_height,
    13.        piece_depth,
    14.        gross_piece_weight,
    15.        case_width,
    16.        case_height,
    17.        case_depth,
    18.        case_weight
    19.   FROM tbl_article
    20.   ;
    Grundsätzlicher Aufbau ist ist immer ein CASE WHEN bedingung THEN <bla> [ELSE <blubb>] END.

    Grüße
    Biber
     
Die Seite wird geladen...