将列值加在一起形成1个结果列

时间:2019-02-26 03:54:46

标签: mysql mysqli

我正在开发一个在线销售系统,并且正在开发帐单支付系统。

我将订单本身的订单总额$记录在数据库表中。

示例: “SELECT total FROM Orders WHERE id = ‘1’”

然后,我还有另一个表,其中包含每个财务交易(支票,抄送等)的单独记录

示例: “SELECT payment_amount FROM Payments WHERE order_id = ‘1’”

我想做的是在报告尚未完全支付的订单的某些报告时将两者结合在一起,并检索每个订单的余额。我想通过一个查询来完成此操作...

这就是我尝试过的...

“SELECT o.id as order_id, o.total, (SELECT p.payment_amount FROM Payments as p WHERE o.order_id = o.id) as amount_paid_plus FROM Orders as o”

如果付款项只有1个,这很好用...但是如果有2个,我会收到此错误

  

子查询返回1行以上

我希望将付款表的结果加到一个总金额中,并作为查询中的一个变量返回

即使付款表中没有付款,我也需要查询以返回信息。它只会显示已支付的金额为0。

2 个答案:

答案 0 :(得分:1)

您可以在子查询中将p.payment_amount更改为SUM(p.payment_amount)。请注意,您在子查询中有一个错误,它可能应该是

(SELECT SUM(p.payment_amount) FROM Payments as p WHERE p.order_id = o.id)

请注意从o.order_id更改为p.order_id

答案 1 :(得分:0)

尝试此查询:

SELECT o.id, o.total, SUM(p.payment_amount) FROM Orders o, Payments p where p.order_id = o.id