我想为每个客户选择订单商品的所有(付费)价格的总和.这是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)
(逗号用作小数点.因为价格是小数值)
我在这里问了非常相似的问题
实体框架 - 通过同一列中的多个条件选择 - 引用表
现在关系是多对多。所以我有 3 个表:order、items 和 orderItem(items 是一个 Junction 表)再次......我想选择至少有一个价格为 100 的 orderItem 和至少一个价格为 200 的 orderItem 的所有订单
我真的不知道如何为那个场景编辑它。
var orders = from o in kontextdbs.orders
select o;
foreach(int value in values)
{
int tmpValue = value;
orders = orders.Where(x => kontextdbs.order_item.Where(oi => x.id == oi.order_id)
}
Run Code Online (Sandbox Code Playgroud) 我有一张这样的表:
date(timestamp) Error(integer) someOtherColumns
Run Code Online (Sandbox Code Playgroud)
我有一个查询来选择特定日期的所有行:
SELECT * from table
WHERE date::date = '2010-01-17'
Run Code Online (Sandbox Code Playgroud)
现在我需要计算 Error 等于 0(从那天起)的所有行,并将其除以所有行的计数(从那天起)。
所以结果应该是这样的
Date(timestamp) Percentage of failure
2010-01-17 0.30
Run Code Online (Sandbox Code Playgroud)
数据库相当大,数百万行..
如果有人知道如何在更多天里这样做,那就太好了——从一天到另一天。
Date(timestamp) Percentage of failure
2010-01-17 0.30
2010-01-18 0.71
and so on
Run Code Online (Sandbox Code Playgroud)