0

我想对每天每小时进入任何机场的人的记录进行分组。所以基本上我想要统计任何特定机场每小时进来的人数。下面是我的代码。

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 点等等。

4

1 回答 1

1

即使 nHibernate 可以为您做到这一点,这绝对不是数据库问题,这是一个演示问题。您需要在演示文稿中添加一些忽略重复日期的逻辑。

这是一个 asp.net、asp.net MVC、WPF 还是 winforms 项目?

于 2011-02-05T08:24:39.370 回答