View Full Version : ET-NUMMER, LETZES BESTELLDATUM
Hallo,
ich habe folgendes Problem, aus einer Tabelle der AS400 mit folgendem Inhalt (verkürzt) :
ET-NUMMER LETZES BESTELLDATUM
100 01.01.2011
100 03.02.2011
100 04.04.2011
101 03.12.2009
102 04.05.2008
102 01.05.2011 usw.
soll jeweils zur Artikelnummer die letzte Bestellung ausgegeben werden, mit Query hab ich da sicher keine Möglichkeit, wie mit SQL ?
Danke im Voraus für die Hilfe
eric
select ETNummer max(Bestelldatum)
from MyFile
group by ETNummer
Voraussetzung ist natürloch, dass das Datum sortierfähig ist.
Ansonsten muss man es sortierfähig umdrehen, was auch mit SQL geht.
Du kannst dir darüber dann auch eine View erstellen
CREATE VIEW MYVIEW AS
SELECT ...
die du dann im Query verwenden kannst.
Hallo, vielen Dank, also müsste das so aussehen :
select ETNummer max(Bestelldatum)
from MyFile
order by Bestelldatum asc
group by ETNummer
oder ? Danke nochmals eric
Hallo, vielen Dank, also müsste das so aussehen :
select ETNummer max(Bestelldatum)
from MyFile
order by Bestelldatum asc
group by ETNummer
oder ? Danke nochmals eric
Group By und Order By sind in der falschen Reihenfolge.
Da Max(Bestelldatum) verwendet wird macht eine Sortierung nach Bestelldatum keinen Sinn und ist sowieso nicht zulässig.
Wenn das Ergebnis nach dem maximalen Bestell-Datum absteigend sortiert werden soll, muss im Order By Max(Bestelldatum) angegeben werden.
Was Baldur mit sortierbar meinte war, wenn das Datum z.B. im Format TagMonatJahr gespeichert, muss es zunächst aufgedröselt und wieder neu zusammengesetzt werden (JahrMonatTag), damit der Maximal-Wert richtig ermittelt werden kann.
Birgitta
... soll jeweils zur Artikelnummer die letzte Bestellung ausgegeben werden, mit Query hab ich da sicher keine Möglichkeit, wie mit SQL ?
Im Query/400 gibt's unter "Summenfunktionen für Bericht auswählen" die Auswahl "4=Größter Wert".
Eine Sortierung ist tatsächlich nicht erforderlich, da ja das MAX ermittelt wird:
select ETNummer, max(Bestelldatum) as Bestelldatum
from MyFile
group by ETNummer
[order by Bestelldatum asc]
Das order by sortiert das Ergebnis!
In einer View ist order by unzulässig.
Hallo, vielen Dank für die Hilfe, der SQL von B. Fuerchau bringt das Ergebniss was ich möchte !
Weil es angesprochen wurde, das Datum aufdrösseln geht bitte wie ?
DANKE IM VORAUS ERIC
Das hängt von der Speicherform ab.
Beispiel TTMMJJJJ
substr(digits(MyDate), 5, 4) concat substr(digits(MyDate), 3, 1) concat substr(digits(MyDate), 1, 2)
Je nach dem, was man machen will sähe dein Max(Bestelldatum) dann so aus:
max(
substr(digits(Bestelldatum), 5, 4) concat substr(digits(Bestelldatum), 3, 1) concat substr(digits(Bestelldatum), 1, 2)
) as Bestelldatum
So kann man fast alles verwursten.
Ich würde allerdings den Monat 2stellig definieren!
max(
substr(digits(Bestelldatum), 5, 4) concat substr(digits(Bestelldatum), 3, 2) concat substr(digits(Bestelldatum), 1, 2)
) as Bestelldatum
Birgitta
:)
HALLO,
vielen Dank, werd das so mal machen und mich melden !
DANKE ERIC