2012-02-07 15 views
1

サブクエリの例と難易度:LINQのSQL Serverへ - 私は、次のフィールドが含まれているSQL Serverテーブルを持っている

  • のSessionId(GUID)
  • メッセージ(varchar型)
  • タイムスタンプ(日時)

私は何をする必要があることはSQLにLINQを使用して、各のSessionIdのための最初のレコードを引き出すことである(理想的にラムダとしてではなく、クエリ構文は有用であろう)

それは私がラムダクエリと同じことをしようとしました(使用して参加する)が、それだけで

...働いていない

SELECT al.Message, al.SessionId, al.Timestamp 
FROM AppLog AS al 
WHERE al.Timestamp = 
(select MIN(al2.Timestamp) from ApplicationLog as al2 where al2.SessionId = al.SessionId) 

.... T-SQLでこれを行うには、比較的簡単です

/すべてのヘルプは非常に高く評価されます。事前に

おかげ

グリフ

答えて

1

私はsimplistic--されてるかどうかは知らないが、これは一つのテーブルであれば、これは動作するはず?

+0

フランクの答えは完全に正しかったが、これはより簡潔ようです。 – DrGriff

+0

DrGriffに感謝します。 –

1

linquerを試しましたか? http://www.sqltolinq.com/

クエリの構文は、ラムダよりも少し立派に見えるかもしれません -

var x = from al in db.AppLog 
where al.Timestamp == 
    (from al2 in db.ApplicationLog on al2.SessionId equals al.SessionID 
    select al2.Timestamp).Min()) 
select new 
    { 
    al.Message, 
    al.SessionId, 
    al.Timestamp 
    }; 
+0

夢のように働いています - Linqerは必見のようですが、チップフランクのおかげです。 – DrGriff

関連する問題