同じ基準でグループ化するだけでなく、毎日に基づいてカウントを照会する必要があります。生成されたクエリは次のようになります。
select SendTo, dateadd(dd,
0,
datediff(dd,
0,
WorkToBeginDate))
from Locates
group by SendTo, dateadd(dd,
0,
datediff(dd,
0,
WorkToBeginDate))
現在、以下のクエリを使用していますが、date
.
var dateGroupBy = Projections.SqlFunction("date", NHibernateUtil.Date,
Projections.Group<Domain.Locate>(g => g.WorkToBeginDate));
var stats =
_session.QueryOver<Domain.Locate>()
.SelectList(x => x
.SelectGroup(xx => xx.SendTo).WithAlias(() => statsDto.SentTo)
.SelectCount(xx => xx.LocateId).WithAlias(() => statsDto.Count)
.Select(dateGroupBy)
.WithAlias(() => statsDto.DueDate))
.TransformUsing(Transformers.AliasToBean<StatsDto>())
.List<StatsDto>();
このクエリを実行すると、
SELECT this_.SendTo as y0_,
count(this_.LocateId) as y1_,
dateadd(dd,
0,
datediff(dd,
0,
this_.WorkToBeginDate)) as y2_
FROM Locates this_
GROUP BY this_.SendTo,
this_.WorkToBeginDate
私は自分の予測でSelect
はなく、使用しているためだと思います。SelectGroup
私は試し.SelectGroup(xx => new SqlFunctionProjection("date", NHibernateUtil.Date, Projections.Group<Domain.Locate>(g => g.WorkToBeginDate)))
ましたが、これは私に与えますCould not determine member from new SqlFunctionProjection("date", NHibernateUtil.Date, new [] {Group(g => Convert(g.WorkToBeginDate))})
。