1

このテーブルのような私のテーブル:

id  no.of sales    datetime 
1    14            2013-09-10
2    45            2013-09-09
3    18            2013-09-08
4    14            2013-08-12
5    15            2013-08-14
6    18            2013-07-12

上記の表では、9 か月目には 3 つの行があります。8 か月目には 2 つのレコードがあります。9 か月目と 8 か月目のすべての販売数の合計が必要です。これを達成する方法を教えてください。私のクエリ:

DateTime frommonth = DateTime.Now.AddMonths(-3);
DateTime tomonth = DateTime.Now;
var result= from pa in cxt.Products
            where (pa.datevalue >= frommonth && pa.datevalue < tomonth)
                && pa.productname == productname
            orderby pa.datevalue descending
            select new { noofsales=pa.No_of_sales ,datetime=pa.datevalue};

上記のクエリを使用して、個々の 9 か月目のレコードを取得しています。個々の売上高は必要ありません。9 か月目の売上、8 か月目の売上などの合計が必要です。教えてください ...

4

2 に答える 2

3

SQL関数SqlFunctions.DatePartに変換される静的メソッドを使用できます。DATEPART

var results = from r in ctx.Products
              let year = SqlFunctions.DatePart("yy", r.datevalue)
              let month = SqlFunctions.DatePart("mm", r.datevalue)
              where (r.datevalue >= frommonth && r.datevalue < tomonth)
              group r by new { year, month } into g
              select new {
                  Year = g.Key.year,
                  Month = g.Key.month,
                  NoSales = g.Sum(x => x.No_of_sales)
              };
于 2013-09-10T06:14:04.127 に答える
1
var result = from r in cxt.Products
             group r by r.datevalue.Month
             into g
             select new {Month = g.Key, Sum = g.Sum(p=>p.No_of_sales)};
于 2013-09-10T05:52:57.640 に答える