如何在datatable中使用groupby进行分组统计
答案:2 mip版
解决时间 2021-03-06 06:39
- 提问者网友:爱情是不う可等
- 2021-03-05 16:23
如何在datatable中使用groupby进行分组统计
最佳答案
- 二级知识专家网友:追尋☆①秒方向
- 2021-03-05 16:34
举个例子: select a.id,a.name from tablename a group by a.name
全部回答
- 1楼网友:何必执着
- 2021-03-05 17:47
1 一种方式是借用linq
2 自己写代码处理
a 分组排序
public static void groupbydt(ref datatable dt,string strcolumname,string strsortcolumnname)
{
if (dt == null && dt.rows.count == 0){}
else
{
datatable dtresult = dt.clone();
datatable dtsortresult = dt.clone();
if(dt.rows.count == 1)
{
dtresult.importrow(dt.rows[0]);
}
else
{
dtsortresult = sortdt(dt, strsortcolumnname);
for (int i = 0; i < dtsortresult.rows.count; i++)
{
for (int j = dtsortresult.rows.count-1; j >= 0; j--)
{
if(dtsortresult.rows.count > 0)
{
if (dtsortresult.rows[i][strcolumname] == dtsortresult.rows[j][strcolumname])
{
string strprjid = dtsortresult.rows[j][strcolumname].tostring();
dtresult.importrow(dtsortresult.rows[j]);
dtsortresult.rows.remove(dtsortresult.rows[j]);
if (i != 0) { i--; } else { }
if (j != dtsortresult.rows.count) { j++; }
else if (j == 0) { j++; }
}
}
}
}
dt.clear();
dt.merge(dtresult);
}
}
}
b count 汇总计算
public static datatable calculatesuminfo(datatable dt)
{
datatable dtresult = dt.copy();
object objsumdebit = dtresult.compute("sum(debit)", "true");
object objsumcredit = dtresult.compute("sum(credit)", "true");
decimal surplusfund = math.round((convert.todecimal(objsumdebit) - convert.todecimal(objsumcredit)), 2);
datarow row = dtresult.newrow();
row["surplusfund"] = surplusfund;
dtresult.rows.add(row);
return dtresult;
}
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯