Data Max in una query di NHibernate HQL
-
26-10-2019 - |
Domanda
Sto avendo un po 'difficilmente scrivendo una query HQL che cercherà un tavolo per tutte le righe in cui determinati criteri sono soddisfatti, ma ho solo voglia di tornare la riga con la data di max.
Ad esempio la clausola WHERE della query sarebbe qualcosa di simile:
column1 = input1 e column2 = input2 e colonna_data Questa potrebbe restituire più righe con date differenti, ma io sono solo interessati a quello con la data più recente. Ho anche bisogno per tornare l'intera riga. Al momento, sto eseguendo la query con i criteri di cui sopra discendente ordinati per data e poi andare a prendere il primo elemento in C #. Mi piacerebbe avere una query HQL o una soluzione iCriteria che può fare questo in un unico passaggio, se possibile.
Soluzione
Hai solo bisogno di usare una sottoquery. Selezionare la data di massima dai filari di qualificazione e quindi selezionare tutti i record che corrispondono alla data di max. La mia HQL è un po 'arrugginito, ma si ottiene l'idea.
from TableA a
where a.Date in (
select max(b.Date)
from TableA b
where b.Something="You get the idea"
)