The following
LINQ
query can be used to sum the amounts for each code and populate a
DataTable
, which can be assigned to the
DataSource
property of
DataGridView
DataTable ttest = new DataTable();
ttest.Columns.Add("Code",typeof(long),null);
ttest.Columns.Add("Name",typeof(string),null);
ttest.Columns.Add("Amt",typeof(decimal),null);
ttest.Columns.Add("Per",typeof(double),null);
ttest.Rows.Add(480530,"TESTASSET1",100.00,2.00);
ttest.Rows.Add(480530,"TESTASSET2",200.00,2.00);
ttest.Rows.Add(480535,"TESTASSET3",300.00,5.00);
ttest.Rows.Add(480535,"TESTASSET4",400.00,5.00);
DataTable uniqueCodes = ttest.Clone();
ttest.AsEnumerable().GroupBy (t => t.Field<long>("Code")).Select (row =>
{DataRow uRow = uniqueCodes.NewRow();
uRow[0]=row.Key;
DataRow gRow = row.FirstOrDefault ();
uRow[1]=gRow[1];
uRow[3]=gRow[3];
uRow[2]=row.Sum (r => r.Field<decimal>("Amt"));
return uRow;
}
).CopyToDataTable(uniqueCodes,LoadOption.OverwriteChanges);
dataGridView1.DataSource = uniqueCodes;
[Edit] SQL Query to sum amt, added [/Edit]
SELECT CODE, NAME, SUM(AMT) AS AMT, PER
FROM T_TEST
GROUP BY CODE