Jim*_*Jim 2 c# linq linq-to-sql
我有一张像这样的桌子:
Code | BuildDate | BuildQuantity
---------------------------------
1 | 2013-04-10 | 4
1 | 2014-09-23 | 1
1 | 2014-08-20 | 2
7 | 2014-02-05 | 4
Run Code Online (Sandbox Code Playgroud)
我希望LINQ查询为每个代码选择最新构建日期,为该代码选择BuildQuantity,依此类推所有记录,并总结它.所以对于上面的数据,结果应该是1 + 4 = 5.
这就是我正在尝试的:
var built = (from tb in db.Builds
orderby tb.BuildDate descending
group tb by tb.Code into tbgrp
select tbgrp.Sum(c => c.BuildQuantity)).First();
Run Code Online (Sandbox Code Playgroud)
这个查询返回7 ...我做错了什么?
在你拿第一个代码之前,你总结了所有代码的BuildQuantities,而不是你想要总结第一.
int built = db.Builds
.GroupBy(b => b.Code)
.Sum(g => g.OrderByDescending(b => b.BuildDate).First().BuildQuantity);
Run Code Online (Sandbox Code Playgroud)