我是SQL新手,请帮助我如何将此查询转换为LinQ
这是我的表部门:
Id Name Sal Department
1 John 40000 Dotnet
2 mick 45000 DotNet
3 Pillay 777 Sql
这里我想显示基于部门名称的薪资,例如:
DepartmentName ToalSal
Dotnet 85000
Sql 777
select DeprtmentName,sum(sal) from Dept_Emp Group by DeprtmentName
我写了一些查询部分
public IEnumerable<Dept_Emp> GetJam()
{
var x = from n in db.Dept_Emp
group n by n.Sal into g
select new
{
DeprtmentName = g.Key
};
// what I mention Here;
}
答案 0 :(得分:0)
您缺少计算分组实体的sal
字段的总和。你也是按错误的字段分组。您应该使用部门名称进行分组
from de in db.Dept_Emp
group de by de.DeprtmentName into g
select new {
DepartmentName = g.Key,
TotalSalary = g.Sum(x => x.Sal) // aggregation here
}
您输出的是匿名对象。您无法直接从方法返回它们。你有几个选择
DepartmentTotals
的自定义类,并返回此类的实例而不是匿名对象。然后返回类型为IEnumerable<DepartmentTotals>
。Tuple<string, int>
(或任何类型的薪水)。并返回这样的元组。