2011-06-01 54 views
1

我想爲當前的星期做數據庫中的字段總數。例如,如果今天是星期三,那麼我希望星期一到星期三的星期一,星期四然後星期一到星期四..我如何在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")); 

回答

2

這樣做很可能是計算的開始/結束日期的查詢外,並添加Between限制您的投影列表的最簡單方法。

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

但是我如何計算(知道)本週的開始和結束日期?你能幫我解決嗎? – appuser 2011-06-01 18:35:59

+2

這個SO貼子能幫助你嗎? http://stackoverflow.com/questions/38039/how-can-i-get-the-datetime-for-the-start-of-the-week – csano 2011-06-01 18:41:10