我想将每小时每小时进入机场的人的记录分组。所以基本上我想要在任何特定机场每时每刻都有人来这里。下面是我的代码。
string ArrDate =
String.Format("LTRIM(STR(MONTH({0}))) + '/' + LTRIM(STR(DAY({0}))) + '/' + LTRIM(STR(YEAR({0})))", "DestinationDatetime");
string ArrTime=
String.Format("rtrim(datepart(hh, DestinationDatetime)) +' Hour'", "DestinationDatetime");
Template.Criteria.
SetProjection(
Projections.ProjectionList()
.Add(Projections.Count("ID"), "ACount")
.Add(Projections.SqlGroupProjection(ArrDate + " as DateVal", ArrDate
new string[] { "DateVal" }, new IType[] { NHibernateUtil.String }))
.Add(Projections.SqlGroupProjection(ArrTime + " as TimeVal", ArrTime,
new string[] { "TimeVal" }, new IType[] { NHibernateUtil.String }))
.Add(Projections.GroupProperty("Airport"), "APort"));
Template.Criteria.SetResultTransformer(Transformers.AliasToEntityMap);
现在,上面的查询以下面的方式给我记录,
Date Airport Time Count
12/16 ORD 13 Hour 5
12/16 ORD 17 Hour 6
12/16 MWK 10 Hour 7
我希望查询将记录显示为
Date Airport Time Count
12/16 ORD 1 pm 5
4pm 6
MWK 10 am 7
所以日期和机场不要一直重复。我希望每小时都有人数进入。即,凌晨1-2点,凌晨2-3点等等。
答案 0 :(得分:1)
即使nHibernate可以为你做这件事,这绝对不是数据库问题,这是一个表示问题。您需要在演示文稿中添加一些忽略重复日期的逻辑。
这是asp.net,asp.net MVC,WPF还是winforms项目?