【问题标题】:Select records with max date in datatables Uipath在数据表 Uipath 中选择具有最大日期的记录
【发布时间】:2022-02-07 10:07:34
【问题描述】:

你能帮我解决这个问题吗?

我有一个包含以下字段的数据表(Uipath):id、account、reg date、exp date。每个 id 可能有多个帐户。我需要通过 id 选择一条记录,最大注册日期。

为了做到这一点,我正在使用:

(从行中的 data_dt Group By id = row(0) 进入 grp = Group 令 md = grp.Max(函数 (d) d(3)) 选择 data_dt_max.Rows.Add({id, CDate(md.ToString).ToString(\"dd/MM/yyyy\")})).CopyToDataTable。

该指令有效,但并未提供所有字段。我对编程很生疏,所以我真的不确定如何修改它,或者我是否需要不同的方法。

非常感谢您的帮助!

    标签: linq uipath


    【解决方案1】:

    尝试:

    var selectedRows = data_dt
        .GroupBy(row => row.id)
        .Select(grp => grp
            .OrderByDescending(row => row.expDate)
            .First()
        );
    

    这首先按 ID 分组,然后在每个组中选择具有最新 expDate 的记录。结果应该只是每组中具有最大 expDate 的行。

    以上是使用 LINQ 方法语法。也许其他人可以建议等效的 LINQ 查询语法。

    【讨论】:

      【解决方案2】:
      // select all customers 
      var customersWithMaxRegDate = data.GroupBy(x => x.Id)
                                        .Select(g => new
                                         {
                                             // grp by id
                                             Id = g.Key,
                                             regDate = g.Max( x => x.regDate),
                                             // get customer record with max regdate
                                             customer = g
                                         );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多