Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LINQ (Language-Integrated Query) > Множественная группировка


Автор: Uvs 27.11.2009, 18:41
Всем доброе время! Помогите, не соображу никак. Проблема с группированием в запросе,
если группировка делается по нескольким полям:

select code1, code2, sum®
from table
group by code1, code2;

Как правильно написать запрос?  Пробовал - так:

var query = from q in table group q by q.code1 into gr select new {gr.Key, Сумма = gr.Sum(ff=>ff.r)};

И все! Дальше непонятно .....  Или я чего-то не так делаю?


Заранее спасибо!

Автор: KelTron 28.11.2009, 12:53
Код

class Victim 
{
    public string Code1 { get; set; }
    public string Code2 { get; set; }
    public int Price { get; set; }
}

...
var lst = new List<Victim> { 
    new Victim { Code1 = "1", Code2 = "2", Price = 1},
    new Victim { Code1 = "3", Code2 = "1", Price = 2},
    new Victim { Code1 = "1", Code2 = "2", Price = 3},
    new Victim { Code1 = "1", Code2 = "2", Price = 4},
    new Victim { Code1 = "3", Code2 = "3", Price = 5},
};

var res = lst
    .GroupBy(r => new { r.Code1, r.Code2 })
    .Select(gr => new { gr.Key.Code1, gr.Key.Code2, Sum = gr.Sum(i => i.Price) });

foreach (var item in res)
{
    Console.WriteLine("Code1 = {0}, Code2 = {1}, Sum = {2}", item.Code1, item.Code2, item.Sum);
}


Автор: Uvs 30.11.2009, 06:27
Спасибо за ответ! Прототип заработал. Книгу Ратца, к сожалению в воскресение только скачал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)