SQL - 某些行的总和,减去其他行的总和

mic*_*oel 1 mysql sql

我在mySQL中有一个表,其中包含以下列:

CUSTOMER_CODE | TRANS_TYPE | TRANS_VALUE
Run Code Online (Sandbox Code Playgroud)

TRANS_TYPE可以是"DRINV"(销售)或"DRCDT"(信用卡).

我想得到每个客户的总销售额,所以到目前为止我的查询是:

SELECT CUSTOMER_CODE, SUM(TRANS_VALUE) as SALES FROM DR_TRANS GROUP BY CUSTOMER_CODE
Run Code Online (Sandbox Code Playgroud)

问题是这是总销售额信用额,而不是销售额减去信用额度.我希望结果如此

SUM(TRANS_VALUE) where TRANS_TYPE = "DRINV" - SUM(TRANS_VALUE) where TRANS_TYPE = "DRCDT".
Run Code Online (Sandbox Code Playgroud)

是否可以在SQL查询中执行此操作?

Bri*_*lia 6

select customer_code,
       sum(case
             when trans_type = 'DRINV' then
              trans_value
             else
              -trans_value
           end) as net_sales
  from dr_trans
 group by customer_code
Run Code Online (Sandbox Code Playgroud)