我有数据结构
对于每件商品,每种货币的特定日期都有一份价格记录。我需要创建一个返回每种货币最新价格的查询。
此查询有效,但会为货币ID Amounts
返回多个1
。它应该只返回3条记录7,8 and 9
,因为它们代表此商品所有货币的最新价格。
var q = (from c in db.tblStoreItemPrices where c.ItemID == ID select new { c.CurrencyID, c.Amount });
请忽略所有排序并假设记录是随机排序的。
感谢您的帮助!
答案 0 :(得分:31)
这应该有效:
db.tblStoreItemPrices
.Where(c => c.ItemID == ID)
.GroupBy(c => c.CurrencyID)
.Select(g => g.OrderByDescending(c => c.Date).First())
.Select(c => new { c.CurrencyID, c.Amount });
说明: