datatable分类汇总,该如何解决
datatable分类汇总
我有一组数据存进了一个自定义的datatable,其中数据如下
列一 列二
a 2
a 1
b 5
c 2
b 1
c 1
我想统计成
列一 列二
a 3
b 6
c 3
意思就是一组数据放在一个自定义datatable中,分类汇总以后再用一个datatable接值
希望能给出完整代码
------解决方案--------------------
参考
http://topic.****.net/u/20120412/15/b36be23a-c01e-49b3-a011-3ca1b2acc68b.html
另外也可以用DataTable.Computehttp://technet.microsoft.com/zh-tw/library/system.data.datatable.compute(en-us).aspx
------解决方案--------------------
var query = from q in datatable.AsEnumerable()
group p by p.id into g
select new {
g.Key,
TotalPrice = g.Sum(p => p.sl)
};
------解决方案--------------------
兄弟,你还真够懒的
var query = from q in datatable.AsEnumerable()
group q by q.Field<string>("列1") into g
select new
{
g.Key,
s = g.Sum(p => p.Field<decimal>("列2"))
};
foreach (var q in query)
{
Response.Write(q.Key.ToString() + "~~" + q.s.ToString() + "<br>");
}
如果实在无法得知列名,则用
var query = from q in datatable.AsEnumerable()
group q by q.Field<string>(0) into g
select new
{
g.Key,
s = g.Sum(p => p.Field<decimal>(1))
};
试试
------解决方案--------------------
代码 如下,我经过测试通过, 很费时的啊,自己模拟数据,自己创建DataTable
string[] title = new string[] { "列一", "列二" };
string[,] Conten = new string[,] { { "a", "2" }, { "a", "1" }, { "b", "5" }, { "c", "2" }, { "b", "1" }, { "c", "1" } };
DataTable dt2 = creat.BingDing(title, Conten);
var groupBy = from q in dt2.AsEnumerable()
group q by q[0] into g
select new
{
g.Key,
sumValue = g.Sum(p => Decimal.Parse(p[1].ToString()))
};
我有一组数据存进了一个自定义的datatable,其中数据如下
列一 列二
a 2
a 1
b 5
c 2
b 1
c 1
我想统计成
列一 列二
a 3
b 6
c 3
意思就是一组数据放在一个自定义datatable中,分类汇总以后再用一个datatable接值
希望能给出完整代码
------解决方案--------------------
参考
http://topic.****.net/u/20120412/15/b36be23a-c01e-49b3-a011-3ca1b2acc68b.html
另外也可以用DataTable.Computehttp://technet.microsoft.com/zh-tw/library/system.data.datatable.compute(en-us).aspx
------解决方案--------------------
var query = from q in datatable.AsEnumerable()
group p by p.id into g
select new {
g.Key,
TotalPrice = g.Sum(p => p.sl)
};
------解决方案--------------------
兄弟,你还真够懒的
var query = from q in datatable.AsEnumerable()
group q by q.Field<string>("列1") into g
select new
{
g.Key,
s = g.Sum(p => p.Field<decimal>("列2"))
};
foreach (var q in query)
{
Response.Write(q.Key.ToString() + "~~" + q.s.ToString() + "<br>");
}
如果实在无法得知列名,则用
var query = from q in datatable.AsEnumerable()
group q by q.Field<string>(0) into g
select new
{
g.Key,
s = g.Sum(p => p.Field<decimal>(1))
};
试试
------解决方案--------------------
代码 如下,我经过测试通过, 很费时的啊,自己模拟数据,自己创建DataTable
string[] title = new string[] { "列一", "列二" };
string[,] Conten = new string[,] { { "a", "2" }, { "a", "1" }, { "b", "5" }, { "c", "2" }, { "b", "1" }, { "c", "1" } };
DataTable dt2 = creat.BingDing(title, Conten);
var groupBy = from q in dt2.AsEnumerable()
group q by q[0] into g
select new
{
g.Key,
sumValue = g.Sum(p => Decimal.Parse(p[1].ToString()))
};