Как объединить несколько объектов DataTable с group by с C # и объединить дубликаты строк? - PullRequest
0 голосов
/ 18 апреля 2011

Привет, у меня есть следующий сценарий:

У меня есть набор запросов, которые будут возвращать мне набор объектов DataTable. В таблице данных будет несколько одинаковых столбцов и несколько столбцов, уникальных для каждой таблицы. например

Таблица 1:

Name   | Jan Data  | Feb Data
A      |10         |20
B      |12         |9

Таблица 2:

Name   | Mar Data  | Apr Data  | May Data
A      |12         |21         |5
C      |14         |90         |6

Теперь я хочу объединить эти два объекта таблицы данных. но при объединении существуют такие имена, как A, которые являются общими для обеих таблиц, и данные различаются. поэтому я хочу вывод, такой как:

Name   | Jan Data  | Feb Data  | Mar Data  | Apr Data  | May Data
A      |12         |21         |5          | 45        |52 
B      | 0         | 0         |           |62         |21
C      |14         |90         |6          |63         |42

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

Можете ли вы предложить мне подход, как этого можно достичь?

Я использую C # 2.0

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Я бы написал другой запрос, чтобы объединить два и вернуть именно то, что я хотел.То, что вы описываете, это то, для чего созданы реляционные базы данных и SQL.Я бы не стал делать это в коде, если бы мне абсолютно не пришлось.

0 голосов
/ 18 апреля 2011

Если вы можете сделать это в представлении SQL, это может быть вашим лучшим результатом.

Если вы ограничены в этом, я думаю, вы получите желаемые результаты из DataTable.Merge

В коде это будет выглядеть примерно так:

private DataTable CombineTables(DataSet ds)
{
return New DataTable = ds.Tables(0).Merge(ds.Tables(1),true,MissingSchemaAction.Add);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...