sql linq查询where和group by

时间:2012-07-10 22:45:17

标签: c# asp.net sql linq

我对Linq有严重的问题。我有简单的SQL查询:

 select 
    intMiesiac, 
    intRok, 
    Sum(intIn) as 'In',
    Sum(intOut) as 'Out' 
from dbo.GlobalDane 
where intRampNr=1 
group by intMiesiac, intRok

我查询指定intRampNr的输入和输出之和,并希望按月和年分组。
在linq中尝试了非常多种查询,但是当我将查询结果放入gridview的数据源然后绑定数据源时它失败了或者它只显示空单元格。
如何在C#下在linq中创建相同的语句?

2 个答案:

答案 0 :(得分:2)

以下内容将为您完成:

var results = 
    dataContext.GlobalDanes
    .Where(gd => gd.intRampNr == 1)
    .GroupBy(
        gd =>
            new 
            {
                 gd.intMiesiac,
                 gd.intRok,
            })
    .Select(
        grp =>
            new 
            {
                grp.Key.intMiesiac,
                grp.Key.intRok,
                In = grp.Sum(gd => gd.intIn),
                Out = grp.Sum(gd => gd.inOut),
            });

答案 1 :(得分:1)

同样在查询语法

from a in db.GlobalDane
where a.intRampNr == 1 
group a by new { a.intMiesiac, a.intRok, } into g 
select new 
{ 
    g.Key.intMiesiac,
    g.Key.intRok, 
    In = g.Sum(X => X.intIn),
    Out = g.Sum(X => X.inOut),
};