如何在SQL中进行计算
如何在SQL中进行计算如何在SQL中进行计算,sql,sum,subquery,Sql,Sum,Subquery,如何在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 我想计算一下成本: 当TR.TYPE为时,我想将其添加到总成本中 当TR.TYPE为B时我想从总数中减去成本值 我认为在聚合函数中需要一个条件表达式: select
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
我想计算一下成本:
时,我想将其添加到总成本中当TR.TYPE为
我想从总数中减去成本值当TR.TYPE为B时
我认为在聚合函数中需要一个条件表达式:
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
请注意,我将
中的条件重写为exists
条件-两者在这里是等效的,但是exists
通常在子查询中有大量行时伸缩性更好。@puss。我删除了不一致的数据库标记。请仅使用您真正使用的数据库进行标记。
Ideal
No1 COST 700
No2 COST 100
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