var qs = SNP.GroupBy(x => new { x.customer_name, x.sales, x.customer_code}) ;
我要分组并求trans_fee的和,我怎么再把sum(trans_fee)加上去,高人指点
------最佳解决方案--------------------------------------------------------
var qs = SNP.GroupBy(x => new { x.customer_name, x.sales, x.customer_code}).Select(g=>new{trans_feeSum=g.Sum(x=>x.trans_fee),g.customer_name,g.sales,g.customer_code});
------其他解决方案--------------------------------------------------------
var qs = SNP.GroupBy(x => new { x.customer_name, x.sales, x.customer_code})
.Select(g=>new{trans_feeSum=g.Sum(x=>x.trans_fee)} ;
------其他解决方案--------------------------------------------------------
var qs = SNP.GroupBy(x => new { x.customer_name, x.sales, x.customer_code}).Select(g=>new{trans_feeSum=g.Sum(x=>x.trans_fee)});
foreach (var qs_ in qs)
{
Response.Write(qs_.trans_feeSum+"--"+qs_.);//这个只有trans_feeSum,没有customer_name这些
}
------其他解决方案--------------------------------------------------------
是分组后的和,还是分组每一组的和
------其他解决方案--------------------------------------------------------
是每一组的和,不好意思,没有表达清楚,谢谢
------其他解决方案--------------------------------------------------------
var qs = SNP.GroupBy(x => new { x.customer_name, x.sales, x.customer_code})
.Select(g=>new{
customer_name=g.Key.customer_name,
customer_code=g.Key.customer_code,
sales=g.Key.sales,
trans_feeSum=g.Sum(x=>x.trans_fee)
} ;
如果觉得自己表达不清楚,可以举个例子说明一下,最清楚
------其他解决方案--------------------------------------------------------
好的,谢谢,例子如下:
客户编号 客户 业务 运费(总计)
004 A 小刘 400
003 C 小张 300
001 R 小明 3500
很重要的一点,是想以有运费最早的第一笔单向后排序
比如上边004 的最早的一笔运费产生在2012-01-20
003 产生在2012-02-02
01 产生在2012-03-01
不知道分组,求和排序能弄到一块去不?或有什么方法可以解决,谢谢!
------其他解决方案--------------------------------------------------------
我是以下边的来解决分组求和的,但排序不知道怎么弄了
var qs = SNP.GroupBy(x => new { x.customer_name, x.sales, x.customer_code}).Select(g => new { trans_feeSum = g.Sum(x => x.trans_fee), g.Key.customer_code, g.Key.customer_name, g.Key.sales});