Linq 不分组 求和多列

健者天行 2016-08-11 01:00:42
下面是 Linq Group By 求和的C#代码,
var q = from p in dtQtyDetail.AsEnumerable() //Linq Group By 求和汇总
group p by new
{
ColorID = p.Field<string>("ColorID")
} into g
select new
{
ColorID = g.Key.ColorID,
Qty1 = g.Sum(p => p.Field<Int16>("Qty1")),
Qty2 = g.Sum(p => p.Field<Int16>("Qty2")),
Qty3 = g.Sum(p => p.Field<Int16>("Qty3"))
};
相当于 SQL:
select
ColorID,
SUM(Qty1)[Qty1],SUM(Qty2)[Qty2],SUM(Qty3)[Qty3]
from 表
group by ColorID


----------------------------------------------------------------------------
上面的代码没问题,
现在我想不用分组了,想直接求和 Qty1 ,Qty2, Qty3 这3个字段
请教 Linq 如何写???

即相当于 SQL:
select
SUM(Qty1)[Qty1],SUM(Qty2)[Qty2],SUM(Qty3)[Qty3]
from 表


...全文
757 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
烟波钓 2016-08-11
  • 打赏
  • 举报
回复
晕了 求和是不是必然意味着分组呢

 var reuslt = new List<int>();
                result.Select(e => new
                {
                    Qty1= dtQtyDetail.AsEnumerable().Sum(p => p.Field<Int16>("Qty1")),,
                    Qty2 = dtQtyDetail.AsEnumerable().Sum(p => p.Field<Int16>("Qty2")),
                    Qty3 = dtQtyDetail.AsEnumerable().Sum(p => p.Field<Int16>("Qty3"))
                });
好恶心的代码
健者天行 2016-08-11
  • 打赏
  • 举报
回复
问题解决, 谢谢楼上。
q107770540 2016-08-11
  • 打赏
  • 举报
回复
    var q = from p in dtQtyDetail.AsEnumerable()        
                        group p 1 into g
                        select new
                        { 
                            Qty1 = g.Sum(p => p.Field<Int16>("Qty1")),
                            Qty2 = g.Sum(p => p.Field<Int16>("Qty2")),
                            Qty3 = g.Sum(p => p.Field<Int16>("Qty3"))
                        };
finally you still using a "fake" group by :)
健者天行 2016-08-11
  • 打赏
  • 举报
回复
@兔子党-督察

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧