[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2009
    Beiträge
    7

    SQL Wochenauswertung

    Hallo!

    Ich muss Lagerbewegungen pro Woche kumulieren. Da es keinen Buchungssatz in der KW 7 gibt, scheint diese in der Auswertung auch nicht auf.

    Beispiel:
    select (week_iso (bld#J || '-' || bld#M || '-' || bld#T)) as Woche, sum(fwzu)

    from lib.file
    where fir='001' and BUAR='ZF' and sais='60' and bld#>'20130101'
    group by (week_iso (bld#J || '-' || bld#M || '-' || bld#T))

    Ergebnis:
    1 2397
    2 2412
    3 1765
    4 848
    5 16
    6 27
    8 6440

    Wie kann ich jetzt eine Zeile für KW7 als Ergebniszeile bekommen?

    Albert

  2. #2
    Registriert seit
    May 2007
    Beiträge
    295
    Guten Tag!
    Das würde mit einer Hilfstabelle gehen.
    In dieser ein Feld in welcher man alle Wochennummern speichert und diese dann als Haupttabelle mittels left join Wochennummer mit deiner Tabelle verknüpft. Somit bekommt man an den Wochen wo nichts ist Null zurück.
    Greets
    Christian
    Anwendungsentwickler und ein bissal Systemoperator
    https://github.com/prsbrc
    LinkedIn

  3. #3
    Registriert seit
    Jun 2009
    Beiträge
    7

    eigene Wochentabelle

    das hab ich inzwichen gemacht - wollte mir aber die Arbeit sparen - gibts da nichts eleganteres?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    SQL kann keine Daten liefern, die nicht existieren.
    Eine Hilfstabelle ist da also leider Voraussetzung.
    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
    Jun 2009
    Beiträge
    7

    erledigt

    das hab ich befürchtet.
    Problem ist inzwischen mit Hilfstabelle gelöst.
    Danke für eure Hilfe.

  6. #6
    Registriert seit
    Apr 2013
    Beiträge
    6

    Wochentabelle

    Es geht auch anders, aber so geht es auch:
    Code:
    create table qgpl/td (woche dec(2), menge dec(5)) 
    
    insert into td values(1, 10) 
    insert into td values(3, 30) 
    
    with recursive w (wo) as          
    (select 1 from sysibm/sysdummy1   
     union all                        
     select wo+1 from w where wo < 53)
    select wo, coalesce(menge, 0)     
    from w                            
    left outer join td on wo = woche  
    order by wo

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Und wo ist da die Berücksichtigung des Kalenders?
    Nicht jedes Jahr hat die Woche 53!
    Aber die Idee ist gut, du kannst anstelle der "1" ein Startdatum nehmen, da immer 7 Tage draufrechnen und die WEEK_ISO ermitteln.

    Allerdings sollte noch ein Schluss-Where angegeben werden sonst läuft das bis ins Ultimo.
    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

  8. #8
    Registriert seit
    Apr 2013
    Beiträge
    6
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Und wo ist da die Berücksichtigung des Kalenders?
    Erwischt! Es sollte nur ein technisches Beispiel sein. Für eine echte Lösung fehlen noch ein paar Dinge wie die Summenbildung usw.
    Allerdings sollte noch ein Schluss-Where angegeben werden sonst läuft das bis ins Ultimo.
    der ist im dynamischen Zweig (wo < 53)

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

Tags for this Thread

Berechtigungen

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