如何在sql中计算

wlwcrazw  于 2021-07-27  发布在  Java
关注(0)|答案(1)|浏览(459)

如何在sql中计算

SELECT NO 
     , SUM(COST)*1.05 
  FROM TR 
 WHERE NO in (SELECT NO FROM USERS)  
   AND TR.TYPE = 'A' 
    OR TR.TYPE = 'B' 
 GROUP 
    BY NO

我想计算一下成本: WHEN TR.TYPE IS A 我想增加总成本。 WHEN TR.TYPE IS B 我想从总数中减去成本价值。

TR_TABLE
NO,COST,TYPE
1,1000,A
1,500, B
1,200, A
2,100, A
Ideal
No1  COST  700
No2  COST  100
kh212irz

kh212irz1#

我认为您需要在聚合函数中使用条件表达式:

select 
    no,
    sum(case when type = 'A' then cost else -cost end) * 0.25 as fuyogaku 
from tr 
where 
    tr.type in ('A', 'B') 
    and exists (select 1 from users u where u.no = c.card_no)
group by no

注意,我重写了 in 条件作为 exists 条件-两者在这里是等价的,但是 exists 当子查询中有大量行时,通常伸缩性更好。

相关问题