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など。
なぜ事実の後にデータを操作しないのですか?これは、nhibernateの問題のようには見えません。 – Vadim
私は知っていますが、空港がたくさんあるので、射影クエリを使って周りに道があると思っていました。それはちょっと単純化するでしょう。 – developer