首页 新闻 会员 周边 捐助

linq lambda 分组获取数据

0
悬赏园豆:50 [已解决问题] 解决于 2015-12-29 12:36

linq lambda 分组获取数据:比如数据库设计如下:
ID    Salary    DateTime
1      1000      2015-08-16
1      2000      2015-08-16
1      3000      2015-07-16
1      4000      2015-07-16
2      1000      2014-08-16
2      2000      2014-08-16
2      3000      2014-07-16
2      4000      2015-07-16
想得到的数据是:每个ID对应DateTime字段最大时间的全部数据, 如上面的数据得到的结果为
ID    Salary    DateTime
1      1000      2015-08-16
1      2000      2015-08-16
2      1000      2014-08-16
2      2000      2014-08-16
使用linq lambda 该如何获取数据????或者SQL语句该怎么写呢???

.NET大神的主页 .NET大神 | 初学一级 | 园豆:157
提问于:2015-12-23 17:54
< >
分享
最佳答案
0
Table_2s
   .Join (
      Table_2s
         .GroupBy (a => a.ID)
         .Select (
            g => 
               new  
               {
                  Key = g.Key, 
                  Max = g.Max (n => n.DateTime)
               }
         ), 
      t => t.ID, 
      r => r.Key, 
      (t, r) => 
         new  
         {
            t = t, 
            r = r
         }
   )
   .Where (temp0 => (temp0.t.DateTime == temp0.r.Max))
   .Select (temp0 => temp0.t)
收获园豆:25
水晶途途 | 小虾三级 |园豆:1443 | 2015-12-24 12:16
其他回答(1)
0

SQL语句:

1 select S.* from (select ID,MAX([Datetime]) [Datetime] from T_Salary group by ID) T inner join T_Salary S on S.ID=T.ID and S.DateTime = T.Datetime order by ID
收获园豆:25
CodeHsu | 园豆:5668 (大侠五级) | 2015-12-24 11:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册