gpt4 book ai didi

c# - Linq 选择最新记录

转载 作者:太空狗 更新时间:2023-10-29 18:02:04 26 4
gpt4 key购买 nike

我有数据结构

enter image description here

对于每件商品,都有其在特定日期以每种货币表示的价格记录。我需要创建一个查询来返回每种货币的最新价格。

此查询有效,但返回货币 ID 1 的多个 Amounts。它应该只返回 3 条记录,7,8 和 9,因为这些代表该项目所有货币的最新价格。

var q = (from c in db.tblStoreItemPrices where c.ItemID == ID select new { c.CurrencyID, c.Amount });

请忽略所有排序并假设记录是随机排序的。

最佳答案

这应该有效:

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 });

解释:

  1. 为特定的 ItemID 选择行
  2. 按 CurrencyID 分组
  3. 从每个货币组中选择具有最新日期的行(为结果集中的每个 CurrencyID 保留一行)
  4. 从这些行中提取出你想要的信息

关于c# - Linq 选择最新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10026772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com