Frage

Ich habe einige schwer eine HQL -Abfrage, die eine Tabelle für alle Zeilen durchsucht, in denen bestimmte Kriterien erfüllt sind, aber ich möchte die Zeile nur mit dem Max -Datum zurückgeben.

Zum Beispiel wäre die Klausel der Abfrage so etwas wie:

Spalte1 = input1 und Spalte2 = input2 und DATE_COLUMN <DATE_INPUT

Dies könnte mehrere Zeilen mit unterschiedlichen Daten zurückgeben, aber ich interessiere mich nur für das, mit dem letztes Datum. Ich brauche es auch, um die gesamte Reihe zurückzugeben.

Derzeit fege ich die Abfrage mit den oben genannten Kriterien aus und holte dann das erste Element in C#ab. Ich möchte eine HQL -Abfrage- oder Icriiteria -Lösung haben, die dies in einem Schritt, wenn möglich, tun kann.

War es hilfreich?

Lösung

Sie müssen nur eine Unterabfrage verwenden. Wählen Sie das maximale Datum aus den Qualifikationszeilen aus und wählen Sie dann alle Datensätze aus, die mit dem Maximum entsprechen. Mein HQL ist ein wenig rostig, aber Sie haben die Idee.

from TableA a 
where a.Date in (
    select max(b.Date) 
    from TableA b 
    where b.Something="You get the idea"
)

Unterabfragen, Aggregatfunktion

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top