qui*_*n16 14 select linq-to-entities entity-framework group-by sum
我想为每个客户选择订单商品的所有(付费)价格的总和.这是SQL命令:
SELECT c.name,SUM(oi.price * oi.count) from customer c
JOIN order o ON c.id=o.customer_id
JOIN order_item oi ON o.id=oi.order_id
JOIN bill b ON b.id=oi.bill_id
WHERE b.payment_id is NOT null
GROUP by c.name;
Run Code Online (Sandbox Code Playgroud)
我不知道如何在EF中这样做.示例结果:
John Smith 1500,2
Allan Babel 202,0
Tina Crown 3500,78
Run Code Online (Sandbox Code Playgroud)
(逗号用作小数点.因为价格是小数值)
Adu*_*cci 27
您的示例结果似乎与您的SQL命令不匹配,但我认为您正在寻找类似这样的内容:
var query = from c in context.Customers
join o in context.Orders on c.id equals o.customer_id
join oi in context.OrderItems on o.id equals oi.order_id
join b in context.bill on oi.bill_id equals b.id
where b.payment_id != null
group oi by c.name into g
select new
{
Name = g.Key,
Sum = g.Sum(oi => oi.price * oi.count),
}
Run Code Online (Sandbox Code Playgroud)