[Oracle10g] aus mehreren Zeilen nur das Jüngste/Grösste

m3000

Erfahrenes Mitglied
Hallo,

ich habe eine Tabelle voll mit Rechnungdaten. Etliche Felder sind jeweils gleich ("Lieferant"), ein paar andere sind abweichend von Rechnung zu Rechnung, zB Rechnungsnummer und Rechnungsdatum. -> Wie kann ich die jeweils jüngste Rechnung eines Lieferanten finden? Also die mit dem jüngsten Datum? Datumsformat ist YYYYMMDD und number. Ganz plumper Versuch als Vorlage:
Code:
select lieferant, rechnungnummer, max(rechnungsdatum)
from rechnung;
Dank und Gruss
Marcus
 
Moin m3000,

eigentlich sollte es ja zumindest je Rechnungsnummer nur einen Satz in der Tabelle geben (es sei denn, Du hast alle drei oder noch mehr Felder als PK definiert).

Mehrere Rechnungen EINES Lieferanten am selben Tag dagegen kann es durchaus geben.
Somit ist die Frage, was Du wissen willst.

Die "höchste" vergebene Rechnungsnummer des Liefeanten:
SQL:
SELECT x.lieferant, x.rechnungnummer, x.rechnungsdatum  
FROM rechnung x, 
(SELECT lieferant , max(Rechnungsnummer) as MaxReNr from Rechnung group by lieferant) y
Where x.Lieferant = y.Lieferant 
AND x.Rechnungsnummer = y.MaxReNr
Order by 1;

-oder die jünste(n) Rechnung(en) -
SQL:
SELECT x.lieferant, x.rechnungnummer, x.rechnungsdatum  
FROM rechnung x, 
(SELECT lieferant , max(Rechnungsdatum) as MaxReDatum 
FROM  Rechnung group by lieferant) y
Where x.Lieferant = y.Lieferant 
AND x.RechnungsDatum = y.MaxReDatum
Order by 1;

Grüße
Biber
 

Neue Beiträge

Zurück