sql - 按特定年份对列中的所有 - / + 值求和
问题描述
我加入了 2 张桌子。一个表包含所有值(+/- 数量),另一个表主要包含维度数据。加入后,我想运行一个查询来计算给定特定年份的所有负值和正值的总和。
问题似乎发生在第三行。有什么想法吗?
select sum(sales_amount)
from salesInfo s inner joint dimInfo d
where sales_amount <0 and year = '2019';
由于第 3 行抛出错误,查询未生成:
错误 - ORA-00905: 缺少关键字 00905。00000 - “缺少关键字”
解决方案
问题可能是由于缺少ON
Oracle SQL 中的子句,这INNER JOIN
与其他数据库方言不同,后者将此类连接视为交叉连接。
或者,您可以使用 OracleNATURAL JOIN
连接表之间匹配的命名列:
from salesInfo s natural join dimInfo d
无论哪种方式,您都可以运行条件聚合,甚至按年分组:
select year,
sum(case when sales_amount < 0 then sales_amount end) as negative_sales,
sum(case when sales_amount > 0 then sales_amount end) as positive_sales
from salesInfo s
inner join dimInfo d on s.some_id = d.some_id
group by year
推荐阅读
- python - 单链接聚类算法
- r - 在 R 中为随机创建的样本绘制逻辑曲线
- excel - Worksheet_change 计算中的第一步问题
- sql-server - 将运行超旧 MS Access 服务器的 Windows XP 与运行 SQL 服务器的 Windows 10 链接?
- django-rest-framework - DRF 序列化器方法字段在 update() 方法中更新后返回先前的字段数据
- c# - 我如何更正位置 0 的无行
- node.js - 为什么在使用 bcryptjs 时,“pre”函数主要与 userSchema 一起使用?
- javascript - 如何像 Twitch 网站一样自动播放带有声音的视频
- paypal - 贝宝订阅,将未结余额添加到订阅按钮的下一个账单
- javascript - FirebaseError:权限缺失或不足(所有者)