-1

私は2つのテーブルを持っています 表1

ID1   Col1_1  
1     "123"   
2     "12331"   

表 2 (FK1 = ID1)

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"

このテーブルを結合し、日付 (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"

そのような依頼は可能ですか?このリクエストは (from ... join ... group by ... select...) フォームで行う必要があります。

4

1 に答える 1

2
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();

LINQ to Objects でテストしましたが、サンプル データと結果は期待どおりです。

于 2013-03-10T10:54:54.217 に答える