根据同一个表中另一个字段的值获取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 中另一个表中的多条记录计算字段的值

使用表中另一个字段的值更新一个字段,其中字段值本身就是键

MySQL 用同一张表中另一个字段的查询结果填充一个新字段

使用mySQL中另一个表中的select结果更新表中的字段

如何根据与现有记录匹配的单个字段值覆盖表中的单个 MySQL 记录?

从 MS Access 中的表中获取自动编号字段值