首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在有条件的行上执行和

在有条件的行上执行和
EN

Stack Overflow用户
提问于 2016-08-09 12:50:59
回答 1查看 49关注 0票数 0

我正在尝试创建这样的查询

代码语言:javascript
复制
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之间进行减法,数量在列t3.state上有条件的行中(例如t3.state> 2)。

但我得到了

无法对包含聚合或子查询的表达式执行聚合函数。

有没有一种方法可以做到这一点,而不添加额外的连接或其他查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 13:17:21

我想这就是你想要做的。当使用select时,您不再需要case,因为t3已经加入了。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38851281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档