Announcement

Collapse
No announcement yet.

Ausnahmen in "substr" definieren!

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

  • Ausnahmen in "substr" definieren!

    Hallo zusammen,

    ich bin noch ganz neu im Forum und das ist auch mein erster Post. Und dann gleich eine Frage

    Aber meine bescheidenen Kenntnisse in Oracle stoßen an ihre Grenzen, vielleicht könnt Ihr mir helfen.

    Ich habe einen View geschrieben, der macht eigentlich genau das was ich will, bis auf eine Ausnahme.

    Hier mal die View:

    Code:
    CREATE OR REPLACE VIEW V1_INDOBJBR
    (OID, VART, KOSTENSTELLE, KID, KUNDEN_NAME, 
     STAT, QM, BELEG_DATUM, BELEG_TYP, WERT, 
     BELEG_DAT_Q_JAHR, BELEG_DAT_MONAT, DEC_WERT, WE, ME, 
     CENTER, DEC_WERT_PRO_QM)
    AS 
    select
    OID
    , VART
    , KOSTENSTELLE
    , KID
    , KUNDEN_NAME
    , STAT
    , QM
    , BELEG_DATUM
    , BELEG_TYP
    , WERT
    , to_char(beleg_datum,'q rrrr') BELEG_DAT_Q_JAHR
    , to_char(beleg_datum,'MON') BELEG_DAT_MONAT
    , decode(beleg_typ,'ABS',WERT*-1,WERT) DEC_WERT
    , substr(oid,1,4) WE
    , substr(oid,5,12) ME
    , substr(kostenstelle,1,4) CENTER
    , decode(beleg_typ,'ABS',WERT*-1,WERT) / decode(QM,0,100000000,QM) DEC_WERT_PRO_QM
    from indobjbr;
    Mein Problem ist nun diese Zeile:

    Code:
    substr(kostenstelle,1,4) CENTER
    Damit schneide ich die ersten 4 Stellen von links der Kostenstelle ab und erstelle eine neue Spalte mit der Überschrift "Center"

    Nun ist es generell so, dass die ersten 4 Stellen der Kostenstelle dieses Center ergeben, bis auf eine Ausnahme.

    Bei den Kostenstellen zwischen 8000001 und 8000999 wäre das Center die "2328"

    Wie definiere ich diese Ausnahme? Ich bin mir sicher das es eine einfache Lösung gibt, nur bin ich mit meinen bescheidenen Kenntnissen am Ende.

    Könnt Ihr mir bitte helfen?

    Viele Grüße und Danke

    Airporter

  • #2
    Schau Dir mal die CASE SQL Anweisung an

    z.B. Hier

    Comment


    • #3
      oder :
      decode((substr(kostenstelle,1,4),'8000','2328,subs tr(kostenstelle,1,4))

      Comment

      Working...
      X