Получить чистое значение числа Mysql, поданного на основе значения другого поля в той же таблице

0

Я использую следующий запрос для получения чистой стоимости поля количества (суммы) в моей таблице. Чистое значение рассчитывается на основе типа поля, называемого типом транзакции. Может ли кто-нибудь помочь мне, посоветовавшись, есть ли способ упростить мой нижний запрос.

    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
Теги:
sum

1 ответ

0
Лучший ответ

Возможно, начните с группировки по 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

Он несколько более компактный и менее повторяющийся, что должно сделать его более универсальным и более простым в обслуживании.

  • 0
    спасибо за помощь и предложение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню