从子选择中选择数据

问题描述 投票:0回答:1

这就是我想要使用 NHibernate QueryOver 完成的事情:

SELECT TOP 10 * from 
            (SELECT aColumn, min(WorkingDay) as d
                FROM   aTable
                GROUP  BY aColumn) as a
    ORDER  BY a.d asc

它基本上是一个带有 Order By 的 Group By。

我知道我可能需要这样的子查询:

var subquery = QueryOver<aTable>.Of(() => alias)
    .Select(
    Projections.ProjectionList()
    .Add(Projections.Group<aTable>(p => p.aColumn).WithAlias(() => alias.aColumn))
    .Add(Projections.Min(() => alias.WorkingDay).WithAlias(() => alias.WorkingDay))
    );

但我不知道如何围绕它构建一个选择。

任何帮助将不胜感激,谢谢。

fluent-nhibernate queryover
1个回答
0
投票
var min = Projections.Min<aTable>(p => p.WorkingDay);
var result = session.QueryOver<aTable>()
    .Select(Projections.ProjectionList()
        .Add(Projections.Group<aTable>(p => p.aColumn))
        .Add(min))
    .OrderBy(min).Asc
    .List<object[]>();
© www.soinside.com 2019 - 2024. All rights reserved.