-
Sql Summen bilden
Mahlzeit,
ich möchte gerne Summen aus 2 Dateien bilden.
ZW1 sind Vorgabezeiten hinterlegt.
ZW2 sind Stempelungen der Mitarbeiter hinterlegt.
Da ja ein Auftrag mehrfach mit der selben Tätigkeit angestempelt werden kann,
bekomme ich bei der Vorgabezeit (W1VZT) falsche Werte,
da die Vorgabezeit immer wieder aufsummiert wird.
Ich habe schon versucht die Aufträge herauszufilter und mit einem Subselect zu füllen,
aber hat nichts geholfen
Ich bräuchte das W1Auf einfach distinct,
aber wie bekomme ich das in diesem Statement unter?
Code:
SELECT SUM(W2MIN), SUM(W1VZT)
FROM ZW1, ZW2
WHERE W1AUF = W2AUF
AND W1FNE = W2FNR
AND W2PNR = W1PNR
AND W2PNR = 36166
AND W2DAT = 20121001
W1MIN = gestempelte Zeit
W2VZT = Vorgabezeit
W1FNE = W2FNR (Folgenummer wo ersichtlich ist welche Stempelung zusammengehören)
Gruß
Tarki
-
Dann machs doch distinct:
sum(distinct Wert)
summiert nur eindeutige Werte.
-
Diese Variante hatte ich schon ausprobiert.
Mit SELECT SUM(W2MIN), SUM(W1VZT), W2AUF etc..
bekomme ich 3 Zeilen, wo die Teilsummen stimmen,
aber sobald ich das W2AUF im select weglasse,
ist das Ergebnis nicht korrekt.
-
Ich habe mal ein ähnliches Problem gehabt.
Bin mir jetzt nicht sicher, aber ich glaube, du musst zuerst die Summe für jede Tabelle einzeln machen.
Hier mal mein Gedanke (Ungetestet!!)
Code:
With x as (SELECT W1AUF, W1FNE, W1PNR , SUM(W1VZT) W1VZT
FROM ZW1
GROUP BY W1AUF, W1FNE, W1PNR),
y as (SELECT W2AUF, W2FNR , W2PNR , SUM(W2MIN) W2MIN
FROM ZW2
GROUP BY W2AUF, W2FNR , W2PNR)
SELECT SUM(W2MIN), SUM(W1VZT)
FROM x, y
WHERE W1AUF = W2AUF
AND W1FNE = W2FNR
AND W2PNR = W1PNR
AND W2PNR = 36166
AND W2DAT = 20121001
lg Andreas
-
 Zitat von andreaspr@aon.at
Ich habe mal ein ähnliches Problem gehabt.
Bin mir jetzt nicht sicher, aber ich glaube, du musst zuerst die Summe für jede Tabelle einzeln machen.
Hier mal mein Gedanke (Ungetestet!!)
Code:
With x as (SELECT W1AUF, W1FNE, W1PNR , SUM(W1VZT) W1VZT
FROM ZW1
GROUP BY W1AUF, W1FNE, W1PNR),
y as (SELECT W2AUF, W2FNR , W2PNR , SUM(W2MIN) W2MIN
FROM ZW2
GROUP BY W2AUF, W2FNR , W2PNR)
SELECT SUM(W2MIN), SUM(W1VZT)
FROM x, y
WHERE W1AUF = W2AUF
AND W1FNE = W2FNR
AND W2PNR = W1PNR
AND W2PNR = 36166
AND W2DAT = 20121001
lg Andreas
Hätte da bitte noch eine Frage:
Wenn ich in dieser Abfrage noch von einer 3. Datei 2 Felder anzeigen möchte, wie zb. Auftragsnummer und Auftragsdatum.
Wie müsste ich das formulieren.
Habe im "with" Teil folgendes eingegeben Z ( Select Fir, Dat, From File group by fir, dat)
Aber im letzten Select akzeptiert er mir die Felder Fir, Dat, etc. nicht.
Wie muss ich das formulieren, dass ich auch die anderen Felder im Sql-statement sehe?
Gruß
Tarki
-
Wie genau sieht denn jetzt das Statement aus?
-
Hallo Andreas,
wollte gerade posten, das ich das Group by mit den Feldern vergessen habe anzugeben.
Gruß und noch einen schönen Feierabend
Tarki
-
Code:
With x as (SELECT W1AUF, W1FNE, W1PNR , SUM(W1VZT) W1VZT
FROM ZW1
GROUP BY W1AUF, W1FNE, W1PNR),
y as (SELECT W2AUF, W2FNR , W2PNR , SUM(W2MIN) W2MIN
FROM ZW2
GROUP BY W2AUF, W2FNR , W2PNR),
z as ....
SELECT SUM(W2MIN), SUM(W1VZT) , max(z-Auftrag)
FROM x, y, z
WHERE W1AUF = W2AUF
AND W1FNE = W2FNR
AND W2PNR = W1PNR
AND W2PNR = 36166
AND W2DAT = 20121001
and w1-w2feld = z-feld (natürlich die 'echte' verknüpfung)
and ....
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Ich würde das ungefähr so formulieren:
ZW1 = Vorgaben
ZW2 = Istzeiten
With X as
(Select w2auf, sum(w2min) as IST
from ZW2
Groupb by w2auf)
Select A.w1auf, A.w1vzt, x.IST
from ZW1 A
Inner Join X on A.W1AUF=X.W2AUF
-
Danke an alle!
ich kannte bis dato with x nicht!
kann ich das im Free einfach exec sql einfuegen?
-
 Zitat von tarkusch
kann ich das im Free einfach exec sql einfuegen?
Genau, dass kannst du ganz normal wie ein SELECT verwenden.
-
Dankeschön und allen noch ein schönes Wochenende!
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
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