【问题标题】:Max date in an nHibernate HQL querynHibernate HQL 查询中的最大日期
【发布时间】:2012-01-09 23:11:37
【问题描述】:

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

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

column1 = input1 and column2 = input2 and date_column

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

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

【问题讨论】:

    标签: nhibernate hql icriteria


    【解决方案1】:

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

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

    Subqueries, Aggregate Function

    【讨论】:

    • 这是从 TableA 中获取日期等于子查询选择的日期的所有行,因此子查询中的 where 条件不适用于主查询。
    • 我假设日期是独一无二的。为什么不将where 条件同时应用于主查询和子查询?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多