View Full Version : Sql Summen bilden 2.Teil
Danke Andreas und Birgitta für eure Hilfe.
Du musst dem Kind Max(VGZT) einen Namen geben und diesen verwenden.
Ich würde an dieser Stelle auch keinen Sub-Select verwenden sondern eine CTE (Common Table Expression) vorziehen. Verschachtelte Sub-Selects werden schnell unüberschaubar.
With x as (Select GNR, TNR, ZNR, Max(VGZT) MaxVGZT
From YourFile
Group By GNR, TNR, ZNR)
Select Sum(MaxVGZT)
From X;
Birgitta
Hallo Brigitta,
wenn ich noch die 2 anderen Felder dazufüge seq und Pnr verfälscht das mein Ergebnis(1061).
Die richtigen Minuten sind 821.
Gibt es da noch eine Möglichkeit diese Statement zu verfeinern?
andreaspr@aon.at
13-12-12, 10:31
Vielleicht brauchst du sowas?:
With x as (Select GNR, TNR, ZNR, Max(VGZT) MaxVGZT
From YourFile
Group By GNR, TNR, ZNR),
y as (select * from YourFile)
Select y.seq, y.PNR, Sum(x.MaxVGZT)
From X, Y
where x.gnr = y.gnr
And x.tnr = y.tnr
and x.znr = y.znr;
(ungetestet)
Andreas ich habe das Statement leider so nicht hinbekommen.
Habe das Sql in 2 Statements zerlegt.
Thx
Tarki
Hi,
bekomme bei unten angeführten Statement die Meldung:
Ergebnis der Anweisung enthält mehr als eine Zeile.
Aber unten steht ja select sum(MaxVZT).
Ist eigentlich in dem Statement möglich, das ich dort ein Subselect, was bestimmte Aufträge auswählt, möglich?
oder wie löse ich das anders?
Dank im Voraus
with x as (
SELECT GNR1, TNR1, ZNR1, max(VZT) MaxVZT
FROM MyFile1 WHERE auf1 = (select AUF2 from MyFile2 WHERE
DAT >= 20121101 AND DAT <= 20121130)
group by GNR1, TNR1, ZNR1)
select sum(MaxVZT)
From x
with x as (
SELECT GNR1, TNR1, ZNR1, max(VZT) MaxVZT
FROM MyFile1 WHERE auf1 in (select AUF2 from MyFile2 WHERE
DAT >= 20121101 AND DAT <= 20121130)
group by GNR1, TNR1, ZNR1)
select sum(MaxVZT)
From x
Der Subselect im Where liefert mehr als eine Zeile.
was muss ich eigentlich definieren dass ich nur eine Gesamtsumme bekomme?
andreaspr@aon.at
18-12-12, 12:23
was muss ich eigentlich definieren dass ich nur eine Gesamtsumme bekomme?
Was genau meinst du damit?
Um einfach "NUR" eine Summe zu bekommen, verwendest du MAX().
Nur eine Summe ?
Einfach "select sum(MyField) from Myfile where ...".
Sorry Fehler war meinerseits.