SQL group by + compute by解法 http://www.cnblogs.com/Gavinzhao/archive/2010/07/12/1776107.htmlC#一样可以有计算列DataTable的Compute方法或Expression
http://www.cnblogs.com/youring2/archive/2012/05/29/2524075.html另外,用Linq当然也可以

解决方案 »

  1.   

    //数据库查询处理
    select 
    费用/部门,
    数据集成,
    系统集成,
    软件开发,
    QB产品事业部,
    (数据集成+系统集成+软件开发+QB产品事业部) as 总计 from 表
    union all
    select 
    '合计' as 费用/部门,
    sum(数据集成),
    sum(系统集成),
    sum(软件开发),
    sum(QB产品事业部),
    sum(数据集成)+ sum(系统集成)+sum(软件开发)+ sum(QB产品事业部))
    from 表
      

  2.   

    //DataTable数据源处理
    DataTable dt =查询方法; 
    dt.Columns.Add("总计");
    decimal 数据集成 =0;
    decimal 系统集成 =0;
    decimal 软件开发 =0;
    decimal QB产品事业部 =0;
    decimal 总计 = 0;
    for (int i = 0; i < dt.Rows.Count; i++)
    {
         dt.Rows[i]["总计"] = Convert.ToDecimal(dt.Rows[i]["数据集成"])+Convert.ToDecimal(dt.Rows[i]["系统集成"])+Convert.ToDecimal(dt.Rows[i]["软件开发"])+Convert.ToDecimal(dt.Rows[i]["QB产品事业部"]);
         数据集成 += Convert.ToDecimal(dt.Rows[i]["数据集成"]);
         系统集成 += Convert.ToDecimal(dt.Rows[i]["系统集成"]);
         软件开发 += Convert.ToDecimal(dt.Rows[i]["软件开发"]);
         QB产品事业部 += Convert.ToDecimal(dt.Rows[i]["QB产品事业部"]);
         总计 += Convert.ToDecimal(dt.Rows[i]["总计"]);
     }
    dt.Rows.Add("合计", 数据集成, 系统集成, 软件开发, QB产品事业部, 总计);
      

  3.   

    Refer:http://www.cnblogs.com/insus/articles/1433589.html
    http://www.cnblogs.com/insus/p/3347465.html
    http://www.cnblogs.com/insus/p/3279255.html
      

  4.   


    在使用rows。count的时候,发现有点问题。假设之前用到30行,count=30。同一个表,这次只用了20行,但count还是=30。只能手动将25行后面的行,删除不知道怎么破
      

  5.   

    这个回答太刁了-_-!
    在存储过程里面分组统计,最后一行在DataTable里面计算一下吧