gpt4 book ai didi

mysql - 计算两个字段之和之间的差异

转载 作者:行者123 更新时间:2023-11-29 12:55:24 24 4
gpt4 key购买 nike

我有一张表,我从表中扣除贷方和借方以获得我的金额,但问题是,它仅反射(reflect)在一行中,我的贷方行仅对几行有值(value),其余行是空白。

示例表我有成本、利润、借方和贷方,我正在计算借方总和和贷方总和之间的差异以产生一个金额,这里的问题是它只影响单个值

这就是我所做的

SELECT ACC, PROFIT, COST, PROJ,Sum(CREDIT),Sum(DEBIT),Sum(CREDIT)- Sum(DEBIT) asAMOUNT FROM SAMPLE_TBL GROUP BY ACC, PROFIT,COST,PROJECT;

我得到的值为

ACC PROFIT  COST    PROJ    debit    credit AMOUNT

1000 1316 105472 18000
1000 1316 614550 20000
1000 1348 614576 16000
1000 2032 616034 20000
150700 1316 614550 1200 800 -400

150700 1348 614576 400

这里的问题是,它没有影响 AMOUNT 中的剩余行,我可以知道原因

最佳答案

我认为问题在于您的一列或多列中有 NULL 值。如果是这种情况,处理此问题的标准 SQL 方法是使用 coalesce():

SELECT ACC, PROFIT, COST, PROJ, Sum(CREDIT), Sum(DEBIT),
(COALESCE(Sum(CREDIT), 0) - COALESCE(Sum(DEBIT), 0)) as AMOUNT
FROM SAMPLE_TBL
GROUP BY ACC, PROFIT, COST, PROJECT;

这会将 NULL 值替换为 0。它适用于 Oracle 和 MySQL(该问题标记的两个数据库)以及大多数其他数据库。

关于mysql - 计算两个字段之和之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132542/

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