使用某些行的总和从旧的数据表创建一个新的数据表

时间:2013-02-25 12:17:55

标签: c# datatable

我有一个有1000行的数据表。一个字段是ID。不同身份证的数量是500.还有一个钱栏。我必须创建一个500行的数据表。我想你可以猜到哪500.是的,对于每个不同的id,我必须总结所有金额。就这样。

数据表我有:

ID    |   Money
---------------- 
1     |   120 
2     |   75 
1     |   300 
2     |   545

我想要的数据表:

ID    |   Money
---------------- 
1     |   420 
2     |   620

2 个答案:

答案 0 :(得分:2)

  DataTable dt = new DataTable();
  dt.Columns.Add("ID");
  dt.Columns.Add("Money", typeof(double));
  DataTable dt2 = new DataTable();
  dt2.Columns.Add("ID");
  dt2.Columns.Add("Money", typeof(double));
  dt.Rows.Add("1", 20.50);
  dt.Rows.Add("1", 20.50);
  dt.Rows.Add("2", 15.30);
  dt.Rows.Add("2", 10.70);

  var rows = dt.Rows.Cast<DataRow>().GroupBy(x => x["ID"]).Select(x => new { ID = x.Key, Money = x.Sum(row => row.Field<double>("Money")) });
  foreach (var row in rows)
  {
    dt2.Rows.Add(row.ID, row.Money);
  }

答案 1 :(得分:-1)

为什么不用SQL查询从数据库中实际计算?使用MS SQL Server中的某些存储过程或其他东西......我认为它更强大,更快。

像这样......

SELECT ID, Money, SUM(Money)
FROM theTable  
GROUP BY ID, Money