日付/時刻を含むテーブルがあり、最小の日付で行全体を検索したいと考えています。次の例を参照してください。
ID First Last ADateTime Processed
1 Joe Smith 09/06/2013 04:00 AM True
1 Joe Smith 09/06/2013 02:00 AM False
2 Jack Jones
3 John Jack 09/05/2013 06:00 AM True
3 John Jack 09/26/2013 02:00 AM False
クエリから欲しいのは、次のものを取得することです。
ID First Last ADateTime Processed
1 Joe Smith 09/06/2013 02:00 AM False
2 Jack Jones
3 John Jack 09/05/2013 06:00 AM True
近いLINQステートメントがあります:
var uniqueGuys = from d in tests.AsEnumerable()
group d by d.ID into g
let f = g.FirstOrDefault()
where f != null
select new
{
f.ID,
f.First,
f.Last,
ADateTime = g.Min(c => c.DateTime),
f.Processed
};
これにより、最小日付を持つ 3 つの ID のそれぞれが正しく得られますが、残りの情報は正しくありません。たとえば、ID 1 の場合、Joe Smith の日付は 201/09/06 2:00 AM であり、これは正しいのですが、その行に関連付けられている false ではなく True として処理されたと表示されます。最小の日付/時刻を取得しているように見えますが、他のものを見つけることができる最初のレコードを取得しています。最小の ADateTime で完全な行を取得する方法はありますか?