View Full Version : ET-NUMMER, LETZES BESTELLDATUM
Nunja, Teppfuhler sollten durchaus mal erlaubt sin :).
Hallo,
danke, ja, damit kann man jedes Feld wie man will drehen, wenden und verbiegen !
Hab das soeben auf einer AS400 getestet !
vielen Dank ERIC
Wie gesagt, in Query/400 gibt's auch Aggregatfunktionen und Gruppenwechsel.
Im Query/400 aber ungleich schwieriger, da man ja hier nur die Gruppensummen haben will.
Und wenn ich das Ergebnis auch noch in einem Programm haben will, nehm ich doch lieber gleich embedded SQL.
Hallo,
select ETNummer, max(Bestelldatum) as Bestelldatum
from MyFile
group by ETNummer
funktionietr mit den beiden Spalten, wie bekomme ich die anderen hinzu ?
DANKE im voraus ERIC
andreaspr@aon.at
21-05-11, 06:20
Willst du weiter Spalten angezeigt bekommen, musst du diese entweder mit einer Aggregationsfunktion angeben (z.B. Min(sp1), Max(sp1), Avg(sp1), ...) oder wenn du sie nur so angeben willst, musst du sie zumindest in der Group By-Klausel angeben.
Allerdings ändert sich dann auch die Ergebnistabelle entsprechend.
Falls du nur alle Datensätze angezeigt bekommen willst und die Spalte Bestelldatum das Maximun zeigen soll, du aber keine Aggregationen haben willst kannst du auch Subselects verwenden.
Select Tab1.*, (Select Max(Bestelldatum) From Tab1) Bestelldatum From Tab1
Hallo, vielen Dank für die Info, mit den group by auf andere Spalten kommen dann wieder alle
Zeilen, mach den MAX fast wirkungslos.
Select Tab1.*, (Select Max(Bestelldatum) From Tab1) Bestelldatum From Tab1
damit setzt er mir eine Spalte hinten an, da steht immer das gleiche Datum, als das höchste Datum drin !
Bitte nochmals um Hilfe, vielen Dank ERIC
Select a.*, (Select Max(b.Bestelldatum) From Tab1 b where a.ETNummer = b.ETNummer) Bestelldatum From Tab1 a
... also ich würde eine Common Table Expression vorziehen oder wenn schon SubSelect diesen in die From-Anweisung packen:
1. Common Table Expression
With x as (Select ETNummer, Max(BestellDatum) MaxDat
From Tab1
Group By ETNummer)
Select a.*
from x join Tab1 a on a.ETNummer = x.ETNummer and BestellDatum = MaxDat
;;
2. Sub-Select in From-Anweisung
Select a.*
From (Select EtNummer, Max(BestellDatum) MaxDat
From Tab1
Group By EtNummer) x
join Tab1 a on a.ETNummer = x.ETNummer and BestellDatum = MaxDat;
Birgitta
Hallo, das krieg ich irgendwie nicht hin,
meine Tabelle zum Testen habe ich TAB1 genannt, es sind folgende Felder vorhanden :
ETNUM, BLDAT, TEXT, PREIS (bei der wirklichen Tabelle existieren noch mehr Felder).
es soll von jeder ATNUM der Satz mit dem höchsten Wert in BLDAT angezeigt werden :
'select etnum, max(bldat) from tab1 group by etnum' das zeigt mir die richtigen Daten an, leider auch nur die angegebenen Felder !
Bitte nochmals um Hilfe, vielen Dank ERIC