sql - 使用 Group by 和 Sum 将 SQL 转换为 LINQ
问题描述
我是使用 LINQ 的新手,我正在尝试将此 sql 查询转换为 LINQ,但没有成功。请帮忙
select z.des_zona,s.des_sector , sum(sueldo)as Sueldos
from Personas p
inner join Sectores s on s.cod_sector=p.cod_sector
inner join Zonas z on z.cod_zona=p.cod_zona
group by z.des_zona,s.des_sector
解决方案
假设你的实体是这样的
public class Persona
{
public int sueldo { get; set; }
public string cod_sector { get; set; }
public string cod_zona { get; set; }
}
public class Sectore
{
public string cod_sector { get; set; }
}
public class Zona
{
public string cod_zona { get; set; }
}
这是 linq
Personas.Join(Sectores, l => l.cod_sector, r => r.cod_sector, (l, r) => new { Persona = l, r.cod_sector })
.Join(Zonas, l => l.Persona.cod_zona, r => r.cod_zona, (l, r) => new { l.Persona.sueldo, l.cod_sector, r.cod_zona })
.GroupBy(i => new { i.cod_zona, i.cod_sector })
.Select(g => new
{
g.Key.cod_zona,
g.Key.cod_sector,
Sueldos = g.Sum(i => i.sueldo)
})
.ToList();
推荐阅读
- git - 将 httpd.conf 放在存储库的哪个位置以创建 docker 映像
- php - php列出表中的所有类别
- arrays - 在 Go 中调用 WebAssembly 代码时如何使用 Go slice?
- android - 在约束布局内的线性布局中将元素置于其他元素之下
- python - Pandas groupby 和 count:包括不在 DataFrame 中的类别
- javascript - 仅在此处地图中尽可能避免收费公路
- cron - 创建一个 AWS CRON 字符串,它将在选定的日子里每天运行
- java - 使用基于另一个对象的 getter 的反射调用 setter 方法的方式
- variables - How to add Text variable on GStreamer?
- java - 如何在使用客户端库(java)在谷歌 BigQuery 中加载 csv 数据时跳过标题行