我正在尝试创建像这样的查询
select sum(t1.quantity) - sum(t2.quantity * SELECT CASE WHEN (condition on t3.status) THEN 1 ELSE 0 END) ),0)
from table1 t1
inner join table2 t2 on t1.key = t2.key
inner join table3 t3 on t2.key = t3.key
基本上它所做的是在t2.quantus列的第一个和第二个之间的减法,这些行在列t3.status上具有条件(例如t3.status> 2)。
但我得到了
无法对包含的表达式执行聚合函数 聚合或子查询。
有没有办法在不添加额外连接或其他查询的情况下执行此操作?
答案 0 :(得分:0)
我认为这就是你要做的。使用select
后,您不再需要case
,因为t3
已加入。{/ p>
select sum(t1.quantity) - sum(t2.quantity * CASE WHEN t3.status > 2 THEN 1 ELSE 0 END)
from table1 t1
inner join table2 t2 on t1.key = t2.key
inner join table3 t3 on t2.key = t3.key