我想选择数据,从数据总和中减去它,然后在一个查询中将其插入到另一个表中,但是它总是在表中返回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)来了解已支付的金额以及余额。

09-10 12:53
查看更多