使用投影查询的当前周数据总和

时间:2011-06-01 17:59:31

标签: c# nhibernate hibernate-criteria nhibernate-projections

我想在本周的数据库中总共进行一些字段。例如,如果今天是星期三,我想在周一到星期三进行总计,如果是星期四,那么星期一到星期四。我将如何使用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 个答案:

答案 0 :(得分:2)

执行此操作的最简单方法可能是计算查询之外的开始/结束日期,并为投影列表添加Between限制。

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