gpt4 book ai didi

mysql - 通过计算sql中其他列的SUM差值将值插入到第三列

转载 作者:行者123 更新时间:2023-11-29 13:47:50 25 4
gpt4 key购买 nike

我有一个查询运行正常,但没有创建所需的结果,我希望此查询通过取第二个总和的差值在表的第三列中插入值 (PAYABLE_AMOUNT_DUE)列 (PAYABLE_AMOUNT) 基于其 ACTION 字符串 (PAYABLE_ACTION)。我的表格结构和值如下所示,

TABLE PAYABLES

我使用的逻辑如下,但它不会将所需的值插入到第三个表中(可以看到它始终为0)

查询

INSERT INTO `payables`(`payable_action`, `payable_amount`, `payable_amount_due`) 
VALUES ('Cash Closed', '300',
'(SELECT SUM(payable_amount)
FROM payables
WHERE payable_action = 'Cash In') -
(SELECT SUM(payable_amount)
FROM payables
WHERE payable_action = 'Cash Closed')
')

正如您所看到的,它在 payable_amountpayable_action 中插入了值,但不在 payable_amount_due 中插入了值,我不知道为什么以及如何插入我做吗?谢谢

最佳答案

你可以尝试:

INSERT INTO payables( payable_action, payable_amount, payable_amount_due ) 
SELECT 'Cash Closed', '300',
SUM( payable_amount * (payable_action='Cash In' ) )
- SUM( payable_amount * (payable_action='Cash Closed') )
FROM payables

编辑:这一行的作用是什么?

SUM( payable_amount * ( payable_action='Cash In' ) )

对于每一行(payable_action='Cash In')返回 bool 值,但mysql只有0或1的 bool 值,所以我们将添加payable_action * 1总和code> 对于满足操作条件的行,payable_action * 0 对于其他行。所以基本上只有那些采取适当行动的人才算数。

关于mysql - 通过计算sql中其他列的SUM差值将值插入到第三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17152550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com