Linq group by语句
我有两张桌子 表1 表2(FK1=ID1) 我需要加入这个表,按日期排序(Col2_2)和按FK1分组。 结果应该是这样的Linq group by语句,linq,join,group-by,Linq,Join,Group By,我有两张桌子 表1 表2(FK1=ID1) 我需要加入这个表,按日期排序(Col2_2)和按FK1分组。 结果应该是这样的 ID2 FK1 Col2_1 Col2_2 Col1_1 2 1 "21" "5.06.2012" "123" 4 2 "41" "5.04.2012" "12331" 有可能提出这样的要求吗?我需要有这个请求在(从…加入…集团…选择…)的形式 我已经使用LINQ to Objects
ID2 FK1 Col2_1 Col2_2 Col1_1
2 1 "21" "5.06.2012" "123"
4 2 "41" "5.04.2012" "12331"
有可能提出这样的要求吗?我需要有这个请求在(从…加入…集团…选择…)的形式
我已经使用LINQ to Objects对其进行了测试,您的样本数据和结果与预期的一样。我尝试从表2中的t2组t2按t2.FK1从gr组加入到表1中的t1组。。。选择新{…};但是结果是重复的。为什么
Col2\u 1
的值为“21”?哦,我错过了“orderby Col2\u 2”。“2012年6月5日”是FK1=“1”的最新日期,这就是为什么我们有相应的Col2_1=“21”值。
ID2 FK1 Col2_1 Col2_2
1 1 "11" "4.04.2012"
2 1 "21" "5.06.2012"
3 1 "31" "2.04.2012"
4 2 "41" "5.04.2012"
5 2 "51" "1.02.2012"
ID2 FK1 Col2_1 Col2_2 Col1_1
2 1 "21" "5.06.2012" "123"
4 2 "41" "5.04.2012" "12331"
var query = from t1 in Table1
join t2 in Table2 on t1.ID1 equals t2.FK1
group new { t1, t2 } by t1.ID1 into g
let i = g.OrderByDescending(e => DateTime.Parse(e.t2.Col2_2))
.FirstOrDefault()
select new
{
ID2 = i.t2.ID2,
FK1 = i.t2.FK1,
Col2_1 = i.t2.Col2_1,
Col2_2 = i.t2.Col2_2,
Col1_1 = i.t1.Col1_1
};
var results = query.ToList();