选择Min和Max LINQ

时间:2013-11-12 13:12:34

标签: c# sql linq entity

select description, min(date), max(date), sum(value1), sum(value2) from table
where description = 'Axxx' and filter = 'L'
group by description

如何使用Linq / C#执行此查询?

3 个答案:

答案 0 :(得分:10)

未经测试,但以下情况应该有效:

table
   .Where(x=>x.description=="Axxx" && x.filter=="L")
   .GroupBy(x=>x.description)
   .Select(x=>new {
       description=x.Key,
       mindate=x.Min(z=>z.date),
       maxdate=x.Max(z=>z.date),
       sumvalue1=x.Sum(z=>z.value1),
       sumvalue2=x.Sum(z=>z.value2)
    });

答案 1 :(得分:0)

那应该有用

var q = from s in db.table
            where description = 'Axxx' and filter = 'L'
            group s by s.description into g
            select new {YourDescription = g.description, MaxDate = g.Max(s => s.date) }

这个答案也许有帮助.. here

答案 2 :(得分:0)

这样的事情应该有效。未经测试

 var q = from b in table
            group b by b.Owner into g
            where description = 'Axxx'
            select new
                       {
                           description = g.description ,
                           date = g.min(),
                           date = g.max(),
                           value1= g.Sum(item => item.value1),
                           value2= g.Sum(item => item.value2),
                       };