【发布时间】:2014-09-11 11:42:46
【问题描述】:
有 group by 的示例 - 有计数 或 select minimum date with 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 的字符串。
【问题讨论】:
标签: c# sql linq having-clause sql-to-linq-conversion