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.

È stato utile?

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"
)

Subquery , Funzione di aggregazione

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top