-
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
-
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.
-
eigene Wochentabelle
das hab ich inzwichen gemacht - wollte mir aber die Arbeit sparen - gibts da nichts eleganteres?
-
SQL kann keine Daten liefern, die nicht existieren.
Eine Hilfstabelle ist da also leider Voraussetzung.
-
erledigt
das hab ich befürchtet.
Problem ist inzwischen mit Hilfstabelle gelöst.
Danke für eure Hilfe.
-
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
-
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.
-
Zitat von Fuerchau
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
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By malzusrex in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 19-09-06, 11:04
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks