2013-02-25 2 views
0

나는 1000 개의 행을 가진 데이터 테이블을 가지고 있습니다. 하나의 필드는 ID입니다. 고유 ID의 수는 500입니다. 또한 돈 열이 있습니다. 500 행이 될 데이터 테이블을 만들어야합니다. 나는 당신이 500을 추측 할 수 있다고 생각합니다. 예, 각각의 ID마다, 모든 금액을 합산해야합니다. 그게 다야.일부 행의 합계를 사용하여 이전 데이터 테이블을 새로 만듭니다.

DataTable에 내가 가지고 :

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

DataTable에 내가 원하는 :

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

당신이 시도 않았고 작동하지 않았다? – Freeman

+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

왜 실제로 SQL 쿼리와 데이터베이스에서 계산하지? MS SQL Server 또는 일부 저장 프로 시저를 사용하면 ... 더 강력하고 빠릅니다.

이런 식으로 뭔가 ....

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

SQL이 사용되는 OP 상태는 언제입니까? – LukeHennerley

+0

긍정적 인 견해를 제시하는 것만으로 ...! –

+0

나는 이것이 사소한 일에 어떻게 도움이되는지 이해할 수 없다. 대답하기 전에 OP가 말한 것을 고려해 보라. – LukeHennerley

관련 문제