Сумма данных за текущую неделю с использованием проекционных запросов - PullRequest
1 голос
/ 01 июня 2011

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

DateTemplate.Criteria = DetachedCriteria.For(typeof(MyBill));


    DateTemplate.Criteria.SetProjection(
    Projections.ProjectionList()
          .Add(Projections.Sum(Projections.Conditional
                            (Restrictions.Eq("PayType", "ABC"),
                                  Projections.Constant(1), Projections.Constant(0))), "GCashSales")
                .Add(Projections.Sum(Projections.Conditional
                            (Restrictions.Eq("PayType", "DEF"),
                                  Projections.Constant(1), Projections.Constant(0))), "GCreditSales"));

1 Ответ

2 голосов
/ 01 июня 2011

Простейшим способом сделать это, вероятно, будет вычисление даты начала / окончания вне запроса и добавление ограничения Between в список проекций.

.Add(Restrictions.Between("MyDate", startDate, endDate))
...