[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2001
    Beiträge
    7

    Zwischensummen in SQL?

    Hallo *all
    kann man mit einem SQL Statement mehrstufige Zwischensummen bilden?
    Ich möchte aus einer Tabelle mit Werk, User, Datum, Beginn, Arbeitsart, Stunden
    eine Liste mit Zwischensummen nach Werk, User, Tag und Monat.
    Also in etwa so:
    Code:
    Werk  User   Datum      Std
    MM01 Willy 01.02.2006   7,5
    MM01 Willy 02.02.2006   7,5
    MM01 Willy JANUAR      15,0
    Danke für alle Antworten

  2. #2
    Registriert seit
    Dec 2005
    Beiträge
    8
    Hallo,

    vielleicht nicht das shönste SQL-statement und nicht ganz genau was sie wollen, aber ich würde das so machen:

    with t1 as (
    select twerk, tuser, cast(month(tdatum) as char(10)) as d1,
    ' ' concat cast(tdatum as char(10)) as d2,
    sum(tstd) from qtemp/t
    group by twerk, tuser, tdatum),
    t2 as (
    select twerk, tuser, cast(month(tdatum) as char(10)) as h1,
    tstd
    from qtemp/t),
    t3 as (
    select twerk, tuser, h1 as d1, '_' as d2, sum(tstd) from t2
    group by twerk, tuser, h1)
    select * from t1
    union all
    select * from t3
    order by twerk, tuser, d1, d2

    Grüsse,

    Jan

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zwischen Summen können mit Hilfe einer Union-Anweisung ermittelt werden. Das einzige Problem ist es die beiden Selekt-Anweisungen anschließend so zu sortieren, dass es auch wirklich Zwischensummen sind. Ein weiteres Problem könnte hier das Datum verursachen.

    Das folgende SQL-Statement sollte allerdings funktionieren:
    PHP-Code:
    with Detail as (Select WerkBenutzerChar(DatumISO)as DatumStd
                      from MyTable
    ),                                    
         
    Summe  as (Select WerkBenutzerSubstr(Datum17) as Datum,
                           
    sum(Std) as Std                              
                      from Detail                                       
                      Group by Werk
    BenutzerSubstr(Datum17))
    Select d.*  from Detail d                                           
    Union                                                               
    Select Werk
    BenutzerDatum concat x'FF'Std                      
    from Summe                                                          
    Order by 1
    2
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Und das Ganze jetzt as mehrstufiger Gruppewechsel á la AS/400-Query !

    Da würde ich doch lieber direkt Query nehmen und das Ganze in eine Ausgabedatei umleiten. Da habe ich dann auch ein Feld BreakLevel für die Gruppenstufe sowie die Totale.
    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

  5. #5
    Registriert seit
    Apr 2001
    Beiträge
    7
    Vielen Dank für die schnellen Antworten!

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
  •