我对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中创建相同的语句?
答案 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),
};