Mysql 将列值相加形成一个结果列

Mysql 将列值相加形成一个结果列,mysql,Mysql,我有一个在线销售系统,我正在开发和我的帐单支付系统的工作 我在数据库表中记录了订单总额$amount和订单本身 例如: 然后,我得到了另一个表,其中包括每个金融交易支票、抄送等的单独记录 例如: 我想做的是,在做一些订单未全额支付的报告时,将这两者结合起来,并检索每个订单的余额。如果可能的话,我想用一个查询来完成这个任务 这就是我所尝试的 SELECT o.id as order_id, o.total, (SELECT p.payment_amount FROM Payments as p W

我有一个在线销售系统,我正在开发和我的帐单支付系统的工作

我在数据库表中记录了订单总额$amount和订单本身

例如:

然后,我得到了另一个表,其中包括每个金融交易支票、抄送等的单独记录

例如:

我想做的是,在做一些订单未全额支付的报告时,将这两者结合起来,并检索每个订单的余额。如果可能的话,我想用一个查询来完成这个任务

这就是我所尝试的

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行

我希望payments表的结果一起添加到一个一次性金额中,并在查询中作为一个变量返回

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

您可以在子查询中将p.payment\u amount更改为SUMp.payment\u amount。请注意,子查询中有一个错误,可能是

(SELECT SUM(p.payment_amount) FROM Payments as p WHERE p.order_id = o.id)
注意从o.order\u id更改为p.order\u id。

尝试以下查询:

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

您只需将p.payment\u amount更改为seash.payment\u amountPerfect!有趣的是我只是在想“我打赌一定要有一个求和选项……我的意思是,每件事都有一个求和选项……哈哈,回答这个问题,我会接受这是一个拼写错误。我改变了这里的实际查询,以使其更有意义,因为我拥有的一个查询有很多不相关的信息。另外,如果我有p.payment\u aount和另一列o.amount\u payment。有没有办法在查询中将这两个值作为一个单独的值相加?我假设o.amount\u payment在orders表中,每个订单只有一个值?如果有,您可以将amount\u payment+选择Pulls.payment\u amount FROM Payments as p,其中p.order\u id=o.id作为total\u payment\u amount或类似的值,它是o.amount\u payment+Pulls.payment_金额作为总支付金额
(SELECT SUM(p.payment_amount) FROM Payments as p WHERE p.order_id = o.id)
SELECT o.id, o.total, SUM(p.payment_amount) FROM Orders o, Payments p where p.order_id = o.id