2011-02-04 8 views
0

1時間に1日空港に入国する人の記録をグループ化したい。だから基本的には、特定の空港で毎晩何人もの人が来るようにしたい。以下は私のコードです。投影照会の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 

日、空港だから、としてレコードを表示したいです繰り返さないでください。私は1時間ごとに人が来るようにしたいです.1〜2am、2〜3amなど。

+0

なぜ事実の後にデータを操作しないのですか?これは、nhibernateの問題のようには見えません。 – Vadim

+0

私は知っていますが、空港がたくさんあるので、射影クエリを使って周りに道があると思っていました。それはちょっと単純化するでしょう。 – developer

答えて

1

nHibernateがこれを行うことができても、これはデータベースの関心事ではありません。プレゼンテーションの懸念。重複した日付を無視するロジックをプレゼンテーションに追加する必要があります。

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

+0

これはWPFプロジェクトです.. – developer

+0

ああ、できます; WPFとしての除外は私のものではありません。ここでスタックオーバーフローに関する新しい質問をすることをお勧めします。これは、繰り返すデータ行をいかに抑えるかについて質問します。 – Rippo