Я пытаюсь реплицировать запрос SQL, используя 2 объединения, а затем группировать и суммировать.
Для этого примера я использовал базу данных Nortwind, которую я пытаюсь показать для каждого продукт, который клиенты приобрели и сколько они приобрели.
SQL выглядит следующим образом
select p.productid,p.ProductName, c.companyname,
c.CustomerID,
sum(od.quantity) as qty_ord
from products as p
inner join [Order Details] as od on od.ProductID=p.ProductID
inner join orders as o on od.OrderID=o.OrderID
inner join customers as c on o.CustomerID=c.CustomerID
where p.productid=1 -- Not in query just for debugging/checking linq
group by p.ProductID,p.ProductName,c.customerid, c.companyname
, и я использовал следующее c#
var productsalesbycust =
(
from p in context.Products join
od in context.Order_Details on p.ProductID equals od.ProductID join
o in context.Orders on od.OrderID equals o.OrderID join
c in context.Customers on o.CustomerID equals c.CustomerID
where p.ProductID==1 // To be removed
group new {p,c,od} by new
{
p.ProductName,
c.CompanyName,
c.CustomerID,
od.Quantity
} into g
select new
{
g.Key.ProductName,
g.Key.CustomerID,
g.Key.CompanyName,
t= g.Sum(x=>x.od.Quantity)
}
);
Это не дает мне того, что я хочу, цифры верны, но группировка не работает.
![enter image description here](https://i.stack.imgur.com/HfFNw.png)