Announcement

Collapse
No announcement yet.

CASE Anweisung über berechnete Spalte mach Ärger

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CASE Anweisung über berechnete Spalte mach Ärger

    Hallo Experten!

    Ich bin dabei einen Bericht zu erstellen und stehe kurz vor dem Ende! Die letzte Sache ist die Änderung des Transportpreises wenn das berechnete Feld "p_wehValid" nicht mit dem Feld "lfs_emenge" übereinstimmt.
    Eigentlich nicht weiter schwer! Allerdings ist das Feld p_wehValid bereits durch eine CASE Anweisung berechnet und laut SQL Server 2005 ungültig (Fehler 207)! Gibt es eine andere Möglichkeit das Statement zu realiseren bzw. durch Verschachtelung zu erreichen?

    Es ist wirklich sehr dringlich und so würde ch mich über Euer Feedback freuen!

    Hier ein Auszug aus meinem Statement:

    Code:
    CASE p_weh 
               when 'Eur/Fm' then 'Fm' 
               when 'Eur/Rm' then 'Rm' 
               when 'Eur/ta' then 'ta' 
               when 'Eur/tl' then 'tl' 
               else '€/FSE falsch!' end as p_wehValid, 
    CASE WHEN [p_wehValid] != [lfs_emenge] THEN '0.00' ELSE p_transpreis END AS p_transpreis
    Gruss und Dank für Eure Mühe, FreezerSE

  • #2
    Hallo!

    Ich bin mir nicht 100%ig sicher, aber ich glaube du wirst das 'p_wehValid' Case Statement wiederholen muessen.

    Code:
    CASE p_weh ...
    CASE WHEN CASE p_weh ... != [lfs_emenge] ...
    *-- robert.oh. --*

    Comment


    • #3
      @ Robert.oh

      Danke für den Hinweis Ich werde es mal ausprobieren, obwohl ich bereits schon einen erfolglosen Versuch mit zwei verschachtelten CASE Anweisungen versucht hatte. Vielleicht war es ein Konstruktfehler und Du hast Recht.

      Sollte es dann so aussehen? Wäre nett wenn Du nochmal antworten würdest!

      Code:
      CASE WHEN CASE p_weh 
      when 'Eur/Fm' then 'Fm' 
                 when 'Eur/Rm' then 'Rm' 
                 when 'Eur/ta' then 'ta' 
                 when 'Eur/tl' then 'tl' 
                 else '€/FSE falsch!' end as p_wehValid != [lfs_emenge] 
      THEN '0.00' ELSE p_transpreis END AS p_transpreis
      Gruss, Freezer

      Comment

      Working...
      X