Question

J'ai un peu écrire une requête difficilement hql qui recherche une table pour toutes les lignes où certains critères sont remplis, mais je veux seulement retourner la ligne avec la date max.

Par exemple, la clause where de la requête serait quelque chose comme:

column1 = input1 et column2 = input2 et date_column

Cela peut retourner plusieurs lignes avec des dates différentes mais je ne suis intéressé que celui avec la date. Je dois aussi revenir toute la ligne.

À l'heure actuelle, je suis exécution de la requête avec les critères ci-dessus descendant triés par date puis aller chercher le premier élément en C #. Je voudrais avoir une requête HQL ou d'une solution iCriteria qui peut le faire en une seule étape, si possible.

Était-ce utile?

La solution

Vous avez juste besoin d'utiliser une sous-requête. Sélectionnez la date maximum des lignes admissibles, puis sélectionnez tous les enregistrements qui correspondent à la date max. Mon HQL est un peu rouillé, mais vous voyez l'idée.

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

sous-requêtes, Fonction d'agrégation

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top