Entwickler-Ecke

Datenbanken - SQL Abfrage


Josef-B - Do 01.09.11 11:15
Titel: SQL Abfrage
Hallo ich stehe auf dem Schlauch:

Habe folgende Abfrage:


Delphi-Quelltext
1:
2:
3:
4:
select Mandant,Artikelnummer, Lieferant, gueltig_ab from
Preis where
Mandant = :Mandant and ArtikelNummer = :Artikelnummer
order by lieferant


Das Ergebnis ist:

Mandant Artikelnummer Lieferant Gueltig_ab
999 180266 91631 13.05.2009
999 180266 91631 01.01.2010
999 180266 92410 01.01.2008
999 180266 92410 01.01.2011

Nun möchte ich immer nach Mandant, Artikelnummer und Lieferant
den "aktuellen" Satz haben, d.h. mit dem größten Datum.

Wenn ich mit Max arbeite in einer Unterabfrage dann krieg ich
nur den absolut größten Wert, d.h. hier den letzten Satz,
ich möchte aber ja in diesem Fall den 2. und 4. Satz haben.


buster - Do 01.09.11 11:21

Ich glaub, das Zauberwort ist hier 'GROUP BY' ;)
Hier [http://www.infos24.de/mysqle/handbuch/3_mysql_count.htm#8] findest du bestimmt was passendes.


Josef-B - Do 01.09.11 11:37

ja manchmal hat man eben ne kleine Fehlschaltung ;-)
hatte da jetzt echt lange drüber gegrübelt,
wahrscheinlich Unterzuckerung.



Delphi-Quelltext
1:
2:
3:
4:
select Mandant,Artikelnummer, Lieferant, max(gueltig_ab) as gueltig_ab
from Preis where 
Mandant = :Mandant and ArtikelNummer = :Artikelnummer
group by mandant,artikelnummer,lieferant


Danke