0

我对 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 中创建相同的语句?

4

2 回答 2

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),
            });
于 2012-07-10T22:50:24.383 回答
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),
};
于 2012-07-10T23:02:14.523 回答