2015-09-10 3 views
0

Ниже мой LINQ запрос:Группировка нескольких столбцов в отчете Linq

var objList = from p in db.Table1 
       join q in db.Table2 on p.saleCategoryId equals q.Id 
       join r in db.Table3 on p.landDetailId equals r.Id 
       select new 
       { 
       p.Id, 
       r.KhataNo, 
       r.KhasraNo, 
       q.type, 
       p.saleCategoryId, 
       p.area, 
       p.stock 
       }; 

Из выше запроса у меня есть результат, как показано ниже:

Id KhataNo KhasraNo Type SaleCategoryId Area Stock 
1  1AB  11AB  LOM  1   100 50 
2  1AB  11AB  LOR  2   200 100 
3  1CD  11CD  LOM  1   300 150 
4  1CD  11CD  LOR  2   250 50 

Но я хочу группе и суммируя несколько столбцы выше следующим образом (желаемый выход):

Id KhataNo KhasraNo Area Stock 
1  1AB  11AB  300 150 
2  1CD  11CD  550 200 

Любой может мне помочь, чтобы получить желаемый результат.

+0

@learningNew это сумма стоимости акций в группе –

ответ

4
 var objList = from p in db.Table1 
      join q in db.Table2 on p.saleCategoryId equals q.Id 
      join r in db.Table3 on p.landDetailId equals r.Id 
      group t by new{t.KhataNo, t.KhasraNo} 
      into grp 
      select new 
      { 

      grp.key.KhataNo, 
      grp.key.KhasraNo, 
      area = grp.Sum(t=> t.Table1.area), 
      stock = grp.Sum(t=>t.Table1.stock) 
      }; 
+0

извините .. я ошибся .. на самом деле, а не выше линии я не могу подвести из Table1 .. линия, где вы упомянули grp.Sum (t => t.area), столбец области из таблицы 1. и он недоступен. – vivek

+0

попробуйте это: area = grp.Sum (t => t.Table1.area) –

+0

спасибо. Одна вещь, которую я хочу спросить, нужно ли мне получить inique id (первичный ключ) из таблицы1, тогда как я должен был закодировать его в запрос ... это как grp.Key ?? Или ?? – vivek

Смежные вопросы