2017-01-25 3 views
-2

У меня есть таблица SQL, где я получаю несколько записей. Но я хочу подвести из [Value] группы по Sales and CollectionНайти сумму с помощью выражения LINQ Lambda Expression

ExecutiveName ClientName 2017-01-21 2017-01-22 2017-01-24 ValueofGoal GoalType 
Admin   Omelettes 10000  NULL  NULL  50000  Collection 
Admin   Omelettes 10000  NULL  NULL  120000  Sales 
Admin   Vijay  NULL  NULL  10000  50000  Collection 
Admin   Vijay  NULL  NULL  10000  120000  Sales 
Admin   Sujeet  NULL  10000  NULL  50000  Collection 
Admin   Sujeet  NULL  10000  NULL  120000  Sales 

выше, это моя фактическая таблица, где я хочу всего ValueofGoal основе Collection and Sales и Большой общей ValueOfGoal колонны

Так же, как:

Sales  : 360000 
Collection : 150000 
Total  : 510000 

Если кто-нибудь знает, как я могу это сделать, используя выражение лямбда, предоставьте мне решение

+1

Пробовали ли вы сделать это самостоятельно? – Andrei

+3

'var data = db.yourTable.GroupBy (x => x.GoalType). Выберите (x => new {Goal = x.Key, Total = x.Sum (y => y.ValueofGoal)});' –

+1

Таблица базы данных не является фактическим объектом в C#. Где ваш код показывает, что вы пробовали до сих пор? – Edward

ответ

1
.GroupBy(x => x.GlobalType) 
    .Select(n => n.Sum(m => m.ValueofGoal)); 

Этот блок кода будет группироваться по GlobalType, а затем суммировать все значения в соответствии с groupby и возвращать сумму каждого из них.

+0

Это неправильно, что здесь подсчитано? как он дает сумму 'ValueofGoal' –

+0

Вы должны действительно добавить немного больше к этому. Описание или объяснение логики или чего-то большего, чем просто голой ответ кода. – ja72

+0

Теперь изменил ответ. –

1

Вы можете использовать

var list = dbContext.YourModel.GroupBy(x=>x.GoalType) 
    .Select(x=>new { 
     GoalType=x.Key, 
     ValueOfGoal=x.Sum(y=>y.ValueofGoal) 
    }).ToList();