Я хочу группировать записи людей, приходящих в любой аэропорт в день в час. Поэтому в основном я хочу, чтобы количество людей приходило в каждый час в любом конкретном аэропорту. Ниже приведен мой код.Помощь с заданием группы по проекционным запросам
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-2am, 2-3am и т. Д.
Почему бы не манипулировать данными после факта? Это не похоже на проблему nhibernate. – Vadim
Я знаю, но, поскольку есть много аэропортов, я думал, что если бы существовал способ с использованием проекционных запросов, возможно, это немного упростило бы вещи. – developer