0

我有一个有 1000 行的数据表。一个字段是 ID。不同 ID 的计数为 500。还有一个货币列。我必须创建一个有 500 行的数据表。我想你可以猜到哪 500 个。是的,对于每个不同的 id,我必须将所有金额相加。就这样。

我有的数据表:

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

我想要的数据表:

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

2 回答 2

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);
  }
于 2013-02-25T12:22:43.957 回答
-1

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

像这样的东西......

SELECT ID, Money, SUM(Money)
FROM theTable  
GROUP BY ID, Money
于 2013-02-25T12:39:13.890 回答