0

空港に到着した人の記録を 1 日 1 時間ごとにグループ化したいと考えています。したがって、基本的には、特定の空港に毎時到着する人の数が必要です。以下は私のコードです。

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 時間ごとに、つまり、午前 1 時から 2 時、午前 2 時から 3 時などの間に入ってくる人の数を数えたいと思います。

4

1 に答える 1

1

nHibernate がこれを実行できるとしても、これはデータベースの問題ではなく、プレゼンテーションの問題です。重複する日付を無視するロジックをプレゼンテーションに追加する必要があります。

これは asp.net、asp.net MVC、WPF、または winforms プロジェクトですか?

于 2011-02-05T08:24:39.370 に答える