Linq zum Auswählen der neuesten Datensätze

8

Ich habe die Datenstruktur

Für jeden Artikel gibt es eine Aufzeichnung seines Preises an einem bestimmten Datum in jeder Währung. Ich muss eine Abfrage erstellen, die den aktuellsten Preis für jede Währung zurückgibt.

Diese Abfrage funktioniert, gibt aber mehrere Amounts für die Währungs-ID 1 zurück. Es sollte nur 3 Datensätze zurückgeben, 7,8 and 9 , da diese die aktuellsten Preise in allen Währungen für diesen Artikel darstellen.

%Vor%

Bitte ignorieren Sie alle Bestellungen und gehen Sie davon aus, dass die Datensätze zufällig angeordnet sind.

Danke für jede Hilfe!

    
Tom Gullen 05.04.2012, 10:20
quelle

1 Antwort

27

Das sollte funktionieren:

%Vor%

Erläuterung:

  1. Wählen Sie Zeilen für die spezifische ItemID
  2. aus
  3. Gruppieren nach WährungsID
  4. Wählen Sie innerhalb jeder Währungsgruppe die Zeile aus, die das aktuellste Datum hat (wobei für jede CurrencyID in der Ergebnismenge eine Zeile übrig bleibt)
  5. Ziehen Sie die gewünschten Informationen aus diesen Zeilen heraus
Jon 05.04.2012, 10:35
quelle

Tags und Links