のグループ&マックス:SQL:私はLINQのには、このSQL文を変換する必要があるすべての列
select id, workerId, max(timestamp) as Datex, clientId from order where clientId = '123' group by workerId;
これは、テーブルの順序のすべての列を持つテーブルを作成します。しかし、それはclientID = 123の行だけを表示し、それをワーカによってグループ化します。最新のエントリー(最大タイムスタンプ)を表示します
どのようにLinqに転送できますか?私はすべてを試みた。この例のdoesn't作品:
var selectedOrder = from s in order
where s.clientID == "123"
group s by s.workerId into g
select new { id = s.id, workerId = g.Key, Datex = g.Max(s => s.timestamp), s.clientID};
UPDATE:原因私はしたいクエリに
id: 1 workerId: 162 Datex: 2014-11-13 clientId: 123 id: 2 workerId: 162 Datex: 2016-01-07 clientId: 123 id: 3 workerId: 222 Datex: 2015-12-12 clientId: 123 id: 4 workerId: 222 Datex: 2013-01-22 clientId: 100 id: 2 workerId: 162 Datex: 2011-11-07 clientId: 123
:私はあなたの例を与えるたい
- :
id: 2 workerId: 162 Datex: 2016-01-07 clientId: 123 id: 3 workerId: 222 Datex: 2015-12-12 clientId: 123
- >私の最初のテーブルには2人の異なる労働者しかいません。私はあなたが
OrderBy
を使用してFirst()
を使用することができ、すべての労働者
'id'列のようになります。 group byステートメントでは使用されません。あなたはこのsqlクエリを実行できますか? –
はい、動作します。アイデアはすべての作業者の最新のTupelを表示することです。だから、すべてのworkerIdは一度しか表示されません。 –
つまり、私はすべての労働者の最新のTupelショーを表示したい –