0
我想将每小时每天进入任何机场的人员记录分组。所以基本上我希望有一些人在任何一个特定的机场都能进来。以下是我的代码。帮助在投影查询中使用group by子句
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
以便日期和机场不要不断重复自己。我希望每个小时后都有人进来.ie,上午1-2点,2-3点之间......
为什么不在事后处理数据?这看起来不像是一个烦人的问题。 – Vadim 2011-02-04 19:24:52
我知道,但因为有很多机场,我想如果有使用投影查询的方式可能会简化一些东西.. – developer 2011-02-04 19:30:24