PDA

View Full Version : Aktueller Datensatz



Eric
03-02-09, 21:55
ich habe folgendes Problem, in einer Datenbank auf der AS400 wird mit jeder Preisänderung ein neuer Satz erstellt, Beispiel : ART-NR, PREIS GUELTIG AB [wird täglich ggf. erneuert], PREIS, ART-GRUPPE (diese Datenbank wird seit 1990 so aufgebaut und hat derzeit ca. 9 Mio Sätze)

nun soll in Excel eine Auswertung erfolgen : ART-NR, ART-GRUPPE, aktueller Preis [heute]


bitte wie auf der AS400 erstellen :

ART-NR, ART-GRUPPE, PREIS GUELTIG AB [letzte Aktualiesierung (kann heute oder auch schon 1995 gewesen sein)], PREIS


Danke ERIC

Eric
03-02-09, 22:05
DATEI IST WIE FOLGT AUFGEBAUT :

ART-NR, PREIS GUELTIG AB, PREIS GUELIG BIS, AKTUELLER PREIS, ...

ERIC

Pikachu
04-02-09, 08:17
Probier's mal so:

SELECT * FROM Datei AS A, (SELECT ARTNR, ARTGRUPPE, MAX(DATUMAB) AS DATUMAB FROM Datei GROUP BY ARTNR, ARTGRUPPE) AS B WHERE A.ARTNR=B.ARTNR AND A.ARTGRUPPE=B.ARTGRUPPE AND A.DATUMAB=B.DATUMAB ORDER BY A.ARTNR, A.ARTGRUPPE

B.Hauser
04-02-09, 08:19
Hi,

Bei 9 Mio Datensätzen wird's in Excel schon etwas eng!
Du musst die Datensätze vorselektieren und das Ergebnis downloaden.
Soweit ich verstanden habe, willst Du pro Artikel jeweils nur den Satz mit dem höchsten "Gültig Ab"-Datum.

Wenn Ja, versuch's mal mit folgendem SQL-Statement (anstatt der CTE with ... kann ggf. auch eine SQL-View erstellt werden):


With x as (Select ArtikelNr, Max("Preis gültig ab")
from Tabelle
Group By ArtikelNr)
Select a.*
from x join Tabelle a using (ArtikelNr)


Damit das ganze halbwegs performat läuft, sollte entweder ein SQL index oder eine geschlüsselte logische Datei mit ArtikelNr und Gültig Ab-Datum absteigend vorhanden sein.

Birgitta