PDA

Vollständige Version anzeigen : Den kleinsten Wert in SQL ermitteln


csomaini
06.08.2004, 09:18
Hallo Zusammen,

ich habe eine Tabelle in welcher ich die Artikelnummer, den Preis von (Preisstaffelung) und die zur Staffel gehörigen Menge drin steht.

Dies sieht z.B. so aus:


001.123.002 12.00 2
001.123.002 14.00 1
001.123.002 8.00 4
002.444.555 25.00 0.5
002.444.555 12.00 1



Nun möchte ich eigentlich immer nur die Tiefste Menge (dies kann mal 0.5, 1, 100, 1000, usw. sein) auslesen mit dem dazugehörenden Preis.

Das Ergebnis sollte dann laut obigem Beispiel so aussehen:

001.123.002 14.00 1
002.444.555 25.00 0.5

Weis jemand wie ich das lösen kann?

Gruss

KHS
06.08.2004, 09:25
Schau mal <b><a href="http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=86352" target="_blank">HIER</a></b> rein.

csomaini
06.08.2004, 09:54
Leider hat dies nicht ganz funktioniert. Es werden mir einfach die 5 kleinsten Preise angezeigt, egal ob diese für den selben Artikel sind. Ich möchte jedoch von jedem Artikel nur den tiefsten Preis.

Hier mein Statement:



SELECT tabelle.ArtikelNummer, Tabelle.Preis, Tabelle.Menge
FROM Tabelle AS Tabelle
WHERE Tabelle.Preis In
(SELECT TOP 5 Preis FROM Tabelle WHERE ArtikelNummer=Tabelle.ArtikelNummer ORDER BY Preis )
ORDER BY Tabelle.ArtikelNummer, Tabelle.Preis;



Gruss

KHS
06.08.2004, 10:20
Du mußt natürlich 'SELECT TOP <b>1</b> ...' schreiben.
Und dann mach' das mit dem 'T' syntaxmäßig mal genau so.

csomaini
06.08.2004, 10:24
Dies habe ich natürlich auch probiert. Nur passiert dann folgendes:

Es wird nur der Artikel angezeigt welche die kleinste Menge hat. Ich möchte jedoch alle Artikel, und von denen immer die Datenzeile mit dem kleinsten Wert im Feld "Menge"

Ich habe das Beispiel auch nachgebaut und es funktioniert. Wenn ich jedoch anstelle der Felder im Beispiel meine Felder nehme, funktioniert es nicht mehr.

Gruss

KHS
06.08.2004, 10:31
Da hatten sich meine Editierung und dein letztes Posting wohl zeitlich überschnitten.
Deshalb nochmal: Mach' das mit dem 'T' syntaxmäßig mal genau so wie in Noubas Beispiel!

csomaini
06.08.2004, 12:33
So funktionierts:

SELECT * from Tabelle1 as T WHERE Menge in ( SELECT min(Menge) from Tabelle1 WHERE ANummer = T.ANummer)


-Thread geschlossen-