2011-02-04 1 views
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-2am, 2-3am и т. Д.

+0

Почему бы не манипулировать данными после факта? Это не похоже на проблему nhibernate. – Vadim

+0

Я знаю, но, поскольку есть много аэропортов, я думал, что если бы существовал способ с использованием проекционных запросов, возможно, это немного упростило бы вещи. – developer

ответ

1

Даже если nHibernate может сделать это за вас, это определенно не касается базы данных. Это озабоченность представлением. Вам нужно будет добавить некоторую логику в презентации, которая игнорирует повторяющиеся даты.

Это проект asp.net, asp.net MVC, WPF или winforms?

+0

Это проект WPF. – developer

+0

oh, can; t поможет вам с дедуплирование как WPF не мое дело, вы можете задать здесь новый вопрос о переполнении стека, который спрашивает, как вы собираетесь подавлять повторяющиеся строки данных. – Rippo

Смежные вопросы