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"));
4

1 に答える 1

2

これを行う最も簡単な方法は、クエリの外部で開始日/終了日を計算Betweenし、予測リストに制限を追加することです。

.Add(Restrictions.Between("MyDate", startDate, endDate))
于 2011-06-01T18:10:42.037 に答える