我有一张桌子
Table1
PKID FID DATE Col1 Col2
=================================================
1 1 01.01.2014 ABC QWE
2 1 02.02.2014 BCD QWE
3 1 03.03.2014 CDE ASD
4 1 01.01.2014 DEF AAS
4 2 02.02.2014 EFG ASD
4 2 03.03.2014 FGH ASD
我正在尝试按 PKID 和 FID 对此表进行分组,并使用LINQ获取与最新日期对应的行。 我试过这个:
Dim T1= From t In Table1 _
Group By t.PKID, t.FID Into Group _
Select PKID, FID, LastDate = Group.Max(Function(p) p.DATE)
现在我有一个PKID,FID和LastDate的表,如下所示:
T1
PKID FID LastDate
==========================
1 1 01.01.2014
2 1 02.02.2014
3 1 03.03.2014
4 2 03.03.2014
对于这个表,我需要像这样添加Table1中的最后两列
Result
PKID FID LastDATE Col1 Col2
=================================================
1 1 01.01.2014 ABC QWE
2 1 02.02.2014 BCD QWE
3 1 03.03.2014 CDE ASD
4 2 03.03.2014 FGH ASD
在SQL中,它将保留在T1的三列上。我知道这不是最好的解决方案,但这就是我所得到的。 不知道如何在LINQ中执行此操作,或者是否有更好的解决方案。
PS:Table1上有一个唯一的INDEX( PKID , FID , DATE )
答案 0 :(得分:0)
找到this
Dim ResultTable = From x In Table1 _
Group x By x.PKID, x.FID Into grp = Group _
Select New With {PKID, FID , .Record = (From x In grp Order By x.DATA Descending).FirstOrDefault()})
我必须测试它,但它似乎有用......