我试图计算两个和的比率,其中一个有一个where
子句,所以我决定使用子查询:
select round(100.0*credit.luotot/all.kaikki) as CPROS
from
(select sum(ordered.totalprice) as kaikki from ordered) all,
(select sum(ordered.totalprice) as luotot from ordered where ordered.paymentby = 'credit') credit
但是,运行此查询将引发
ORA-00936:缺少表达
我不明白为什么。
all
是保留字在甲骨文。您应该使用不是这样的名称,例如all_ordered
:
select round(100.0*credit.luotot/all_ordered.kaikki) as CPROS
from
(select sum(ordered.totalprice) as kaikki from ordered) all_ordered,
(select sum(ordered.totalprice) as luotot from ordered where ordered.paymentby = 'credit') credit
编辑:
顺便说一句,您可以使用case
表达式实现所需的结果,因此您无需使用子查询:
SELECT ROUND(100.0 *
SUM(totalprice) /
SUM(CASE paymentby
WHEN 'credit' THEN totalprice
ELSE 0 END) as CPROS
FROM ordered
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句