根据同一个表中另一个字段的值获取Mysql编号字段的净值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据同一个表中另一个字段的值获取Mysql编号字段的净值相关的知识,希望对你有一定的参考价值。
我使用以下查询来获取表格中数字(金额)字段的净值。净值基于称为事务类型的字段的类型进行计算。任何人都可以通过建议有任何方法来简化我的下面的查询。
select (select sum(jvm_txn_amount) from jvm_transactions
where jvm_txn_mode = 'CASH' and
jvm_txn_type = 'Receipt' and
jvm_txn_mnt_stat = 'A') -
(select sum(jvm_txn_amount) from jvm_transactions
where jvm_txn_mode = 'CASH' and
jvm_txn_type = 'Payment' and
jvm_txn_mnt_stat = 'A')as net_balance
from dual
答案
可能从jvm_txn_type
分组开始:
SELECT SUM(IF(x.type='Receipt', s, 0)) -
SUM(IF(x.type='Payment', s, 0)) AS net_balance FROM
( SELECT jvm_txn_type type, SUM(jvm_txn_amount) s
FROM jvm_transactions
WHERE jvm_txn_mode = 'CASH'
AND jvm_txn_mnt_stat = 'A'
GROUP BY jvm_txn_type
) x
它更紧凑,重复性更低,应该使它更通用,更易于维护。
以上是关于根据同一个表中另一个字段的值获取Mysql编号字段的净值的主要内容,如果未能解决你的问题,请参考以下文章
根据 Access DB 中另一个表中的多条记录计算字段的值