Announcement

Collapse
No announcement yet.

Problem mit TO_CHAR Funktion

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

  • Problem mit TO_CHAR Funktion

    Hallo,
    hier mal ein Ausschnitt aus einem Select von mir...

    Code:
           CASE SUM(SGEW)
           WHEN 0
           THEN 'na'
           ELSE ROUND( (SUM(SGEW) - SUM(IGEW)) * 100 / SUM(SGEW), 2)
            END P_Abweichung,
    Ich bekomme hier die Fehlermeldung das er nach dem ELSE CHAR erwartet, ich aber NUMBER habe.
    So nun habe ich bereits den Tipp bekommen, das ich die Berechnung mit der TO_CHAR Funktion ändnern muss.
    Ich hab schon einiges probiert, aber es klappt nicht....ich weiß nicht wie genau ich das damit machen muss.
    Kann mir jemand helfen?

  • #2
    Code:
    CASE SUM(SGEW)
           WHEN 0
           THEN 'na'
           ELSE TO_CHAR( ROUND( (SUM(SGEW) - SUM(IGEW)) * 100 / SUM(SGEW), 2) )
            END P_Abweichung
    Du solltest Dir aber bewusst sein, dass die Zahl dann ein Text ist und keine Zahl mehr. Eventuell kannst Du auch für 'na' eine Zahl angeben als Ergebnis der Berechnung nicht möglich ist.

    z.B.

    Code:
    CASE SUM(SGEW)
           WHEN 0
           THEN -1
           ELSE ROUND( (SUM(SGEW) - SUM(IGEW)) * 100 / SUM(SGEW), 2)
            END P_Abweichung

    Comment


    • #3
      Mh gut dann müsste ich ja noch irgendwo sagen das die -1 in n/a umgewandelt werden soll.

      Also es soll aufjendenfall ein n/a in der Spalte stehen, wenn die Berechnung nicht möglich ist.
      Und mir wurde eben gesagt ich soll in die Rechnung ein TO_Char einbauen, scheint also Ok zu sein.

      Problem ist ich kriegs nich hin. Immer hab ich ne Fehlermeldung und ich habs schon auf 1000 Arten probiert^^
      Ich weiß nich wie genau die TO_CHAR Funktion mit so einer Berechnung aussehen muss.
      Zuletzt editiert von signature88; 21.07.2009, 09:20.

      Comment


      • #4
        Hallo,

        das Statement von fanderlf sollte funktionieren, vielleicht hast Du ein anderes Problem. Wie heisst denn die Fehlermeldung ?

        Comment


        • #5
          Das klappt ja auch, nur dann hab ich da eben eine -1 stehen und kein n/a.
          Aber das soll ja da stehen^^

          Comment


          • #6
            Originally posted by signature88 View Post
            Das klappt ja auch, nur dann hab ich da eben eine -1 stehen und kein n/a.
            Aber das soll ja da stehen^^
            - Du kannst die DECODE Funktion verwende, um dies zu erreichen


            Gruss

            Comment


            • #7
              Was bekommst denn für nen Fehler wenn Du das verwendest?

              Code:
              CASE SUM(SGEW)
              WHEN 0
              THEN 'na'
              ELSE TO_CHAR( ROUND( (SUM(SGEW) - SUM(IGEW)) * 100 / SUM(SGEW), 2) )
              END P_Abweichung

              Comment


              • #8
                Cool danke es klappt =)

                OMG mir fällt erst jetzt auf das du das oben auch schon so hattest.
                Lach...da hab ich zu schnell gelesen und das TO_CHAR überflogen
                Sry...vielen Dank für die Mühe =)

                Wobei die Ausgabe jetzt etwas merkwürig ist.
                Er gibt alle Zahlen richtig aus, außer 0,..
                Beispiel: 0,67
                Da steht jetzt: ,67

                EInfach nur eine 0 macht er aber und alle anderen Kommazahlen auch...
                Zuletzt editiert von signature88; 21.07.2009, 13:55.

                Comment


                • #9
                  Code:
                  CASE SUM(SGEW)
                  WHEN 0
                  THEN 'na'
                  ELSE TO_CHAR( ROUND( (SUM(SGEW) - SUM(IGEW)) * 100 / SUM(SGEW), 2), '0.00' )
                  END P_Abweichung
                  Dann solltest Du immer mindestens eine Stelle vorm Komma und 2 danach haben

                  Comment

                  Working...
                  X