zoukankan      html  css  js  c++  java
  • LINQ SQL分组取最近一条记录

      最近项目有一个需求,从订单表查询出每个客户最近一条订单记录。数据库表结构如下图

                 SELECT * FROM (
    
                 select ROW_NUMBER()over(partition by [custid] order by [orderdate] desc) AS newIndex,* from Sales.Orders
    
                 ) as T where T.newIndex=1 

    执行结果,已经按照客户分组,并且按时间顺序生成序号。

    对应LINQ代码为

    var table = contex.GetTable<Orders>().ToList();
    
                    var data = table.OrderByDescending(a => a.orderdate).GroupBy(a => a.custid)
                        .Select(g => new { g, count = g.Count() })
                        .SelectMany(t => t.g.Select(b => b)
                            .Zip(Enumerable.Range(1, t.count), (j, i) => new { j.custid, j.shipname, rn = i }));
  • 相关阅读:
    【xinsir】githook之precommit分享
    node进程一些信号的意义
    ES6篇
    Webpack4篇
    Node篇
    Vuex篇
    WebStorage篇
    HTML5篇
    html5语义化标签大全
    emmet语法
  • 原文地址:https://www.cnblogs.com/xxrl-c/p/4516814.html
Copyright © 2011-2022 走看看