繁体   English   中英

Linq嵌套查询总和

[英]Linq nested query sum

在这里努力学习linq。 我试图得出每个员工的总销售额的总和。 我在sql中有它,但想知道在linq中是否有可能

SQL

select 
  sum(t.total) as totalSales,
  e.EmployeeID,
  e.FirstName
from(
    select 
        o.OrderID,
        o.EmployeeID,
        sum(d.unitprice)total
    from Orders o
        inner join [Order Details]d
            on o.OrderID = d.OrderID        
    group by
        o.OrderID,
o.EmployeeID
)t
inner join Employees e
    on e.EmployeeID = t.EmployeeID
group by e.EmployeeID, e.FirstName
order by totalSales

Linq:

from a in orders
join b in orderDetails on a.OrderID equals b.OrderID
join c in employees on a.EmployeeID equals c.EmployeeID
--I had a where a.EmployeeId == c.EmployeeId
select b.UnitPrice).Sum()

这仍然是员工的总销售额而不是总销售额

我从外部选择中不需要的子选择中取出了一些字段,然后得到:

from e in Employees
join t in (
    from o in Orders
    join d in Order_Details on o.OrderID equals d.OrderID
    group d by new { o.OrderID, o.EmployeeID } into dg
    let total = dg.Sum(x => x.unitprice)
    select new { dg.Key.EmployeeID, total })
  on e.EmployeeID equals t.EmployeeID
group t.total by new { e.EmployeeID, e.FirstName } into tg
let totalSales = tg.Sum()
orderby totalSales
select new { tg.Key.EmployeeID, tg.Key.FirstName, totalSales };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM