我想选择数据,从数据总和中减去它,然后在一个查询中将其插入到另一个表中,但是它总是在表中返回null。为了清楚起见,下面是我的查询
insert
into bill(Amount_paid,BAP)
select
'10',Info.BBP - COALESCE(SUM(bill.Amount_paid),0)
from
Info,bill
where
info.id='1';
| ID | BBP |
| 1 | 20 |
|出价| AMOUNT_PAID | BAP |
| 1 | 10 | (空)|
请我如何处理这种情况,我已尽力使这项工作奏效,但无济于事,将不胜感激如何解决此问题。
最佳答案
根据我想象的架构来自上面的布局,此解决方案将无法工作。如果再次支付bill.id 1,该怎么办?或何时开始支付账单编号2的款项?
尝试这个..
INSERT INTO bill
SELECT i.id,
10,
i.BBP -
(SELECT COALESCE(sum(b.AMOUNT_PAID),0)
FROM bill b
WHERE bid = i.id)
FROM info i
WHERE i.id = 1;
尽管我不完全了解您的系统,但我看不到BAP列,因为您始终可以SUM(AMOUNT_PAID)来了解已支付的金额以及余额。