Feld B bei Maximum von Feld A

18/03/2008 - 20:49 von Ulf Kirsten | Report spam
Gibt es einen eleganten und möglichst wenig kostspieligen Weg, den Wert
eines Feldes B einer Tabelle für die Zeile zu ermitteln, wo Feld A sein
Maximum hat, also z.B. den Preis des letzten Verkaufes eines Artikels?
Momentan löse ich das mit

select top 1 feld_b
from meineTabelle
order by Feld_a desc

geht das evtl. eleganter?
Für Tipps ist dankbar
UK aus DD
 

Lesen sie die antworten

#1 Frank Kalis
19/03/2008 - 10:17 | Warnen spam
"Ulf Kirsten" wrote:

Gibt es einen eleganten und möglichst wenig kostspieligen Weg, den Wert
eines Feldes B einer Tabelle für die Zeile zu ermitteln, wo Feld A sein
Maximum hat, also z.B. den Preis des letzten Verkaufes eines Artikels?
Momentan löse ich das mit




Also so etwas in dieser Richtung?

DECLARE @t TABLE(i1 int IDENTITY, g1 CHAR(1), feld_b int, datum datetime)
INSERT INTO @t SELECT 'a', 10, '20080101'
INSERT INTO @t SELECT 'a', 12, '20080302'
INSERT INTO @t SELECT 'a', 13, '20080110'
INSERT INTO @t SELECT 'b', 14, '20080112'
INSERT INTO @t SELECT 'a', 1, '20080201'

SELECT
t1.*
FROM
@t t1
JOIN
(SELECT
g1, MAX(datum) AS datum
FROM
@t t2
GROUP BY g1
) x
ON t1.g1 = x.g1 AND t1.datum = x.datum
WHERE
t1.g1 = 'a'

i1 g1 feld_b datum
2 a 12 2008-03-02 00:00:00.000

Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.org

Ähnliche fragen