仅当ORDER表的匹配is_paid字段不是0000-00-00时,我才需要汇总ORDER_ITEMS表中的所有价格字段。
ORDER_ITEMS table id price ORDER table id is_paid
示例表数据将是:
ORDER_ITEMS id price 1 1.25 1 0.75 2 1.25 2 0.50 2 2.50 ORDER id is_paid 1 0000-00-00 2 2013-02-27
所以上面的数据会返回: id:2 总和:4.25
因为id 1没有支付(因此不关心价格的总和是多少)而且id 2已经支付,所以我们关心id 2的价格字段的总和。
非常感谢你
答案 0 :(得分:1)
您只需使用sum()
汇总功能和GROUP BY
每个订单ID:
select o.id, sum(oi.price) Total
from orders o
inner join ORDER_ITEMS oi
on o.id = oi.id
where o.is_paid != '0000-00-00'
group by o.id
答案 1 :(得分:0)
如果您需要所有不是'0000-00-00'的订单的总和,请从bluefeet的代码中删除“group by”
代码将是 选择o.id,sum(oi.price)总计 来自订单o 内连接ORDER_ITEMS oi 在o.id = oi.id 其中o.is_paid!='0000-00-00'
如果您需要订单ID明智的总和,bluefeet的代码是正确的。