[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    2.114

    Rechnen im SQL

    Hallo *all,
    da ich nicht der SQl Guru bin hier meine Frage:

    Ich habe 2 Dateien, in einer steht ein Wert, und in der 2 steht ob der Wert positiv oder negativ ist. Ich möchte jetzt gerne in SQL aus den 2 Dateien eine machen und direkt den Wert sauber setzen.

    Vorher Vorher
    Art
    1234 Zugang 1000 Zugang +
    1234 Abgang 500 Abgang -

    BSP
    Art Bewegungsart Menge
    1234 Zugang 1000
    1234 Abgang -500

    Das Problem ist das + bei mehreren Zuständen auftreten kann z.B. auch bei Rücknahme etc. und Abgang kann ja auch Schwund sein. Ich müßte dieses + oder - also bei einem Treffer aus eine Liste machen.

    Kann mir da jemand Denkanstöße geben?

    GG

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... case ist einer deiner Freunde, es könnte aber auch einfacher sein sich eine Hilfstabelle zu machen (ich hasse case, da vertippe ich mich immer) und sich von dort dann eine +1 oder -1 zu holen und damit zu multiplizieren.

    D*B

    Zitat Zitat von KingofKning Beitrag anzeigen
    Hallo *all,
    da ich nicht der SQl Guru bin hier meine Frage:

    Ich habe 2 Dateien, in einer steht ein Wert, und in der 2 steht ob der Wert positiv oder negativ ist. Ich möchte jetzt gerne in SQL aus den 2 Dateien eine machen und direkt den Wert sauber setzen.

    Vorher Vorher
    Art
    1234 Zugang 1000 Zugang +
    1234 Abgang 500 Abgang -

    BSP
    Art Bewegungsart Menge
    1234 Zugang 1000
    1234 Abgang -500

    Das Problem ist das + bei mehreren Zuständen auftreten kann z.B. auch bei Rücknahme etc. und Abgang kann ja auch Schwund sein. Ich müßte dieses + oder - also bei einem Treffer aus eine Liste machen.

    Kann mir da jemand Denkanstöße geben?

    GG
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Tja,
    wie meistens eine Frage der Syntax.

    Probiert habe ich das hier

    create view gregor/test03 as
    select bwtenr, teknam, bwbdn2, bwlgnr, bwanr,
    case bwvgar = 150 then -bwbmen else bwbmen end case as bwbmen

    Aber mögen tut er es nicht.
    Wie müßte es denn richtig lauten?

    GG

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    select
    case when charnn = 'Hugo' then 'Otto' else 'Fritz' end as denkste
    from dsternb1.testtyp


    Zitat Zitat von KingofKning Beitrag anzeigen
    Tja,
    wie meistens eine Frage der Syntax.

    Probiert habe ich das hier

    create view gregor/test03 as
    select bwtenr, teknam, bwbdn2, bwlgnr, bwanr,
    case bwvgar = 150 then -bwbmen else bwbmen end case as bwbmen

    Aber mögen tut er es nicht.
    Wie müßte es denn richtig lauten?

    GG
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Tja der stört sich an dem = Zeichen.

    Token = ungültig. Gültige Token: + -.

    GG

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Es gibt 2 Varianten:

    case Ausdruck
    when const1 then Ausdruck1
    [when const2 then Ausdruck2]
    [else Ausdruck3]
    end [as] NewName

    case
    when Ausdruck1 then Ausdruck1
    [when Ausdruck2 then Ausdruck2]
    [else Ausdruck3]
    end [as] NewName

    Ausdruck kann jede beliebige Formel sein, die einen Wert ergibt

    Für deine Fall also

    case Feld
    when 150 then ...
    else ...
    end

    Wichtig zu wissen ist, wenn kein Else vorhanden ist und keine Bedingung wahr ist wird NULL zurückgegeben.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Brille putzen hilft zuweilen!

    select
    case when charnn = 'Hugo' then 'Otto' else 'Fritz' end as denkste
    from dsternb1.testtyp

    oder

    select
    case charnn when 'Hugo' then 'Otto' else 'Fritz' end as denkste
    from dsternb1.testtyp

    man beachte wo das "when" steht!!!!!
    Zitat Zitat von KingofKning Beitrag anzeigen
    Tja der stört sich an dem = Zeichen.

    Token = ungültig. Gültige Token: + -.

    GG
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Danke,
    woher wußtest Du das ich Brillenträger bin ;-)

    GG

  9. #9
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Das läuft wohl unter Persönliche Erfahrungen

    Gruß AS400.lehrling

    PS: Trage auch eine Brille

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  4. SQL - Rechnen bei left-outer-join verknüpfung
    By hzille in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 06-07-04, 10:38

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •