Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#1

MySQL Qwert kummulieren

  Alt 12. Dez 2019, 12:42
Datenbank: MySQL • Version: 5 • Zugriff über: FireDac
Hallo Zusammen,

ich habe eine größere Query, bei der ich bei einer Spalte Hilfe brauche...
Ich möchte den Lagerabgang und den Lagerzugang (geplant) in einer Tabelle darstellen. Dann möchte ich den kummulierten Lagerbestand darstellen. Lagerabgang sind Kundenaufträge und Lagerzugang sind Produktionsaufträge und sind in unterschiedlichen Tabellen. Meine Query sieht bis jetzt so aus:
Delphi-Quellcode:
select a1.lgzgda as Datum,
       'as Kunden,
       'as Bedarf,
       'as Lager,
       concat(a1.waaunr, '-', a1.waaupo) as Auftrag,
       a1.wafemg as Auftragsmenge,
       a1.oaagnr,
       concat('(', oamanr,') ', a1.oaagbz) as AGBezeichnng,
       a1.kritfa,
       date_format(a1.Epress,'%d.%m.%Y') as theodate,
       date_format(eilfa.start,'%d.%m.%Y') as start,
       concat(benutzer.as400kz,': ','(', kommentfa.ag,') ',kommentfa.kommentar) as Kommentar,
       eilfa.angesehen,
       eilfa.angeschoben,
       a1.epressproz,
       a1.emuster
from as400 as a1
left join eilfa on eilfa.waaunr=a1.waaunr and eilfa.waaupo=a1.waaupo and eilfa.oaagnr=a1.oaagnr
left join kommentfa on kommentfa.waaunr=a1.waaunr and kommentfa.waaupo=a1.waaupo and kommentfa.id=
   (select max(id) from kommentfa where kommentfa.waaunr=a1.waaunr and kommentfa.waaupo=a1.waaupo)
left join benutzer on concat(benutzer.vorname,' ',benutzer.name)=kommentfa.verfasser
where oatlkz<>9 and watenr= 10009923 and a1.lgzgda<>'0000-00-00'
group by a1.waaunr
union
select ltlite as Datum,
       kdkuna as Kunden,
       liefer as Bedarf,
       'as Lager,
       'as Auftrag,
       'as Auftragsmenge,
       'as oaagnr,
       'as AGBezeichnung,
       'as kritfa,
       'as theodate,
       'as Start,
       'as Kommentar,
       'as angesehen,
       'as angeschoben,
       'as epressproz,
       'as emuster
from omslp
where watenr= 10009923
order by Datum asc, oaagnr desc
Das Ergebnis habe ich mal als Bild an den Post gehängt. In diesem Bild habe ich auch in rot eingezeichnet, was das Ziel ist...
In der ersten Spalte ist das Datum. Überall da, wo ein Kunde drinsteht, ist auch für dieses Datum ein Abgang geplant. Wenn kein Kunde da steht, dann steht ein der Spalte Auftrag eine Nummer. Zu dem Datum in Spalte 1 muss der Auftrag fertig werden. Die Daten hier sind in der Vergangenheit - alte Datenbasis - im echten Leben sind die in der Zukunft...

Kann mir jemand helfen, wie ich die Kummulierung für Spalte 4 (Lager) hinbekomme? Ich würde in die erste Zeile den Lagerbestand aktuell holen (12.000) und die Auftragsmenge aus Zeile 1 addieren (Auftragsmenge=213752). In der zweiten Zweile würde ich von der Summe der ersten Zeile die Spalte Bedarf (39000) subtraieren...

Vielen Dank
Patrick
Miniaturansicht angehängter Grafiken
query_result.jpg  
Patrick

Geändert von Ykcim (12. Dez 2019 um 13:07 Uhr)
  Mit Zitat antworten Zitat