Группировать по как SQL для Datagridview - PullRequest
0 голосов
/ 25 октября 2019

Этот вопрос, вероятно, задавался ранее и получил ответ, но я не могу найти его здесь.

Я получил сетку данных с 6 столбцами:

Name Description Price Date Amount TotalPrice

Я хочу, чтобы на этой основе было основано второе сетевое представление. Столбцы TotalPrice и Date должны быть удалены, сумма должна рассматриваться как SUM (), как в SQL, а остальные должны быть сгруппированы. Это второе представление данных также должно измениться, когда исходное будет отфильтровано или обновлено.

Кто-нибудь знает решение или пост, где на это ответили?

Пытаясь что-то сделать с помощью LINQ:

new_Datatable= old_Datatable.AsEnumerable()
             .GroupBy(r => r.Field<string>("Name"))
             .Select(g =>
             {
                 var row = old_Datatable.NewRow();

                 row["Artikel"] = g.Key;
                 row["Aantal"] = g.Sum(r => r.Field<decimal>("Amount"));

                 return row;
             }).CopyToDataTable();

Но я не могу представить правильный синтаксис для группировки по нескольким полям и удаления неиспользуемых столбцов (можно, конечно, удалить их по фактуно если это можно сделать заранее, то было бы логичнее это сделать.)

1 Ответ

0 голосов
/ 25 октября 2019

Проверьте, работает ли это

new_Datatable= old_Datatable.AsEnumerable()
             .Select(c => c.Name, c.Description, c.Amount, c.TotalPrice)
             .GroupBy(r => r.Field<string>("Name"), r.Field<string>("Description"), r.Field<string>("TotalPrice"))
             .Select(g =>
             {
                 var row = old_Datatable.NewRow();

                 row["Artikel"] = g.Key;
                 row["Aantal"] = g.Sum(r => r.Field<decimal>("Amount"));

                 return row;
             }).CopyToDataTable();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...