var rentals2 = rentals
.GroupBy(q => new { q.RRealassetName, q.RDateTime })
.Select(q => new Rental
{
RRealassetName = q.Key.RRealassetName,
RDateTime = q.Key.RDateTime,
DNum=q.Sum(x=>x.DNum),
RNum=q.Sum(x=>x.RNum),
DRNum = q.Sum(x=>x.DNum-x.RNum),
//DRNum = q.Sum(x=> q.Sum(x => x.DNum) - q.Sum(x => x.RNum))
}
);
图中的红色圈住数字应该是18-9=9 而不是0-9=-9,应该是该产品的租用数量-退还数量的累计值,可是我改为注释的 DRNum = q.Sum(x=> q.Sum(x => x.DNum) - q.Sum(x => x.RNum)) 写法的时候,系统就提示不能对包含聚合或字查询的表达式执行聚合函数报错,请问应该怎么改写这个lanmda语句,谢谢。
因为只是针对当前日期+设备就行聚合,要参考所有租用数量,可以先读出数据后,用程序处理一遍累加对应的数量,并不一定需要linq to sql全部由数据库来负责计算,这样操作起来简单些
把SQL语句打印出来看看,语句是否准确。
DRNum = q.Sum(x=> q.Sum(x => x.DNum) - q.Sum(x => x.RNum)) 就是这句错误,无法包含聚合或字查询的表达式执行聚合函数
一个linq 无法实现,需要再写个linq...不知道该怎么写