Помощь с групповым предложением в проекционных запросах - PullRequest
0 голосов
/ 04 февраля 2011

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

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

Я хочу, чтобы запрос отображал записи как * 1007.*

  Date   Airport  Time      Count
   12/16  ORD      1 pm        5
                   4pm         6
          MWK      10 am       7

Чтобы дата и аэропорт не повторялись.Я хочу, чтобы число людей приходило после каждого часа. То есть, между 1-2:00, 2-3:00 и т. Д.

1 Ответ

1 голос
/ 05 февраля 2011

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

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

...