[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2004
    Beiträge
    13

    Question SQL: Sort mit Rechenergebnis

    Hallo, ich habe folgendes Problem:

    In einer Tabelle gibt es den Erlös eines Produktes und den Listenpreis.

    Es soll per SQL-Select die Differenz in EUR (erloes-liste) und in % (((erloes-liste)*100)/liste) berechnet werden.

    Die Schwierigkeit: Die abgerufenen Zeilen sollen nach der %-Differenz sortiert sein.

    Geht das überhaupt, oder muss ich zuerst in eine "Hilfsdatei" schreiben?

    Danke für die Antworten
    KaEl

  2. #2
    Registriert seit
    Dec 2002
    Beiträge
    301
    select erloes-liste, (((erloes-liste)*100)/liste) as erg from meinedatei order by erg
    Frank Hildebrandt

  3. #3
    Registriert seit
    Apr 2002
    Beiträge
    792
    Zitat Zitat von KaEl
    Hallo, ich habe folgendes Problem:

    In einer Tabelle gibt es den Erlös eines Produktes und den Listenpreis.

    Es soll per SQL-Select die Differenz in EUR (erloes-liste) und in % (((erloes-liste)*100)/liste) berechnet werden.

    Die Schwierigkeit: Die abgerufenen Zeilen sollen nach der %-Differenz sortiert sein.

    Geht das überhaupt, oder muss ich zuerst in eine "Hilfsdatei" schreiben?

    Danke für die Antworten
    KaEl
    Hi,

    da machst du dann im "SELECT" (((erloes-liste)*100)/liste) AS Abweichung
    und in der Order Klauses: "Order by Abweisung".

    Gruß

    Sascha

  4. #4
    Registriert seit
    Apr 2002
    Beiträge
    792
    Nachtrag:

    Mit ASC (Aufsteigend) oder DESC (Absteigend) kannst du die die Ergebnistabelle dann noch dementsprechend sortieren.

    Order by FELD1 ASC

    Gruß

    Sascha

  5. #5
    Registriert seit
    Feb 2004
    Beiträge
    13

    Thumbs down

    Hallo zusammen,

    leider ist es doch nicht ganz so einfach. Ich "paste" mal das komplette SQL-Statement:

    select artikel, sum(menge), sum(erloes), sum(liste), sum(delta),
    (delta*100/liste) as proz
    from tabelle
    group by artikel
    order by proz, artikel

    Das funktioniert so leider nicht. Es gibt ja viele,viele Zeilen mit dem gleichen Artikel - die sollen alle kumuliert werden. Die %-Abweichung wird dann nur über die Summenzeile eines Artikels berechnet ... und dann soll danach sortiert werden.

    Hat da jemand eine Idee?

    Gruß
    KaEl

  6. #6
    Registriert seit
    Dec 2002
    Beiträge
    301
    Versuch den mal. Ich hoffe ich habe keine Tippfehler gemacht.

    select artikel,
    menge,
    erloes,
    liste,
    delta,
    (delta*100/liste) as proz
    from

    (select artikel,
    sum(menge) as menge,
    sum(erloes) as erloes,
    sum(liste) as liste,
    sum(delta) as delta
    from tabelle
    group by artikel) as dummy

    order by proz, artikel
    Frank Hildebrandt

  7. #7
    Registriert seit
    Feb 2004
    Beiträge
    13
    Super - das war's!!!

    Herzlichen Dank für die Hilfe.


    Schönen Abend noch
    Karlhans

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

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