The following LINQ query can be used to obtain the above results
void Main()
{
DataTable accData = new DataTable();
accData.Columns.Add("Date",typeof(DateTime),null);
accData.Columns.Add("Credit",typeof(double),null);
accData.Columns.Add("Debit",typeof(double),null);
accData.Rows.Add(new DateTime(2012,03,24),500,300);
accData.Rows.Add(new DateTime(2012,03,24),350,275);
accData.Rows.Add(new DateTime(2012,03,24),400,200);
accData.Rows.Add(new DateTime(2012,03,25),250,100);
accData.Rows.Add(new DateTime(2012,03,25),350,150);
accData.Rows.Add(new DateTime(2012,03,27),250,75);
accData.Rows.Add(new DateTime(2012,03,27),175,50);
DataTable balance = new DataTable();
balance.Columns.Add("Date",typeof(DateTime),null);
balance.Columns.Add("Bal",typeof(double),null);
accData.AsEnumerable().GroupBy (row =>row.Field<datetime>("Date"))
.Select (row => {DataRow balRow = balance.NewRow();
balRow["Date"]=row.Key;
balRow["Bal"]=row.Sum (r => r.Field<double>("Credit"))
- row.Sum (r => r.Field<double>("Debit"));
return balRow;}).CopyToDataTable(balance,LoadOption.OverwriteChanges);
}
[Edit]Group Data for illustration as noted in the comment to this solution[/Edit]