group byの例があります- Web 上でlinqを使用して最小日付をカウントまたは選択しますが、質問に対する特定の解決策が見つかりませんでした。また、これまでに見つけたこれらのソリューションを組み合わせる高度な linq の理解もありません。
次のような SQL クエリがあります。
select client_id
from my_table /* Column1 : client_id, Column2 : _month */
group by client_id
having min(_month) = '2009-11'
私の質問は、このクエリを c# linq に変換するにはどうすればよいですか? . これまでのところ、次のようなものを書きましたが、必要なものが得られません。
var query = dataTable.AsEnumerable() // This is my_table
.GroupBy(c => c.Field<Int32>("client_id"))
.Select(g => new
{
g.Key,
minMonth = g.Min(c => c.Field<string>("_month"))
})
.Where(d => d.minMonth == "Some String like '2009-11'");
実際には、必要のないこのSQLの結果が得られます。
select client_id, min(_month)
from my_table
where _month = '2009-11'
group by client_id
注: _month は、YYYY-MM のような形式の文字列です。