2

Таблица:Как написать запрос linq для получения таблицы результатов?

ID  State Rate 
2  NY  8 
1  CA  10 
1  NY  9 
2  IL  7 
2  WA  8 
1  WA  5 

Linq Таблица результатов:

ID  State ApprovedR Not-ApprovedR 
2  NY   8   9 
1  CA   0   10 
2  IL   7   0 
2  WA   8   5 

Оценить с записью ID=1 считается Not-ApprovedR, Если запись не имеет и ID от 1, то его Not-ApprovedR должно быть показано, как 0

+0

спасибо Stephen Я новичок в переполнении стека. Я не знал, как поставить таблицу в вопрос – blackbookstar

+0

Не могу понять это. Ваша вторая запись имеет идентификатор 'ID = 1', который, как вы говорите, должен иметь свой' Rate' в столбце 'Not-ApprovedR', но это не то, что показывает вторая таблица (его в столбце' ApprovedR' –

+0

. Все строки должны либо иметь 'ApprovedR' или' Not-ApprovedR' установлен в '0' правильно? * Изменить: вам нужно четко определить свои требования в своем сообщении и попытаться показать, что вы пробовали до сих пор. – uTeisT

ответ

1

Начните с создания модели представления для представления структуры 2-го стола

public class MyViewModel 
{ 
    public int ID { get; set; } 
    public string State { get; set; } 
    public int ApprovedR { get; set; } 
    public int Not-ApprovedR { get; set; } 
} 

Затем используйте .GroupBy() к группе State и проецировать результат в модели представления

var data = db.yourTable.GroupBy(x => x.State).Select(x => new MyViewModel() 
{ 
    ID = x.Max(y => y.ID), 
    State = x.Key, 
    ApprovedR = x.Where(y => y.ID != 1).Sum(y => y.Rate), 
    Not-ApprovedR = x.Where(y => y.ID == 1).Sum(y => y.Rate), 
}); 

примечание стороны. Именование поля ID, когда его не уникальный идентификатор запутан, и я рекомендую вам изменить имя этого свойства.