nHibernate HQL 查询中的最大日期

zaq*_*zaq 3 nhibernate hql icriteria

我在编写一个 hql 查询时遇到了一些困难,该查询将在表中搜索满足特定条件的所有行,但我只想返回具有最大日期的行。

例如,查询的 where 子句类似于:

column1 = input1 和 column2 = input2 和 date_column < date_input

这可能会返回具有不同日期的几行,但我只对具有最新日期的行感兴趣。我还需要它来返回整行。

目前,我正在使用上面按日期降序排序的条件执行查询,然后在 C# 中获取第一项。如果可能的话,我想要一个 hql 查询或 iCriteria 解决方案,可以一步完成。

Mar*_*rry 5

您只需要使用子查询。从符合条件的行中选择最大日期,然后选择与最大日期匹配的所有记录。我的 HQL 有点生疏,但你懂的。

from TableA a 
where a.Date in (
    select max(b.Date) 
    from TableA b 
    where b.Something="You get the idea"
)
Run Code Online (Sandbox Code Playgroud)

子查询聚合函数