微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Group by 和 Sum 将 SQL 转换为 LINQ

如何解决使用 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,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();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。