sql - 为什么这不返回 0
问题描述
我有一个像这样的查询:
select nvl(nvl(sum(a.quantity),0)-nvl(cc.quantityCor,0),0)
from RCV_TRANSACTIONS a
LEFT JOIN (select c.shipment_line_id,c.oe_order_line_id,nvl(sum(c.quantity),0) quantityCor
from RCV_TRANSACTIONS c
where c.TRANSACTION_TYPE='CORRECT'
group by c.shipment_line_id,c.oe_order_line_id) cc on (a.shipment_line_id=cc.shipment_line_id and a.shipment_line_id=7085740)
where a.transaction_type='DELIVER'
and a.shipment_line_id=7085740
group by nvl(cc.quantityCor,0);
查询运行正常,但没有返回值。如果没有找到数量,我希望它返回 0。我哪里出错了?
解决方案
GROUP BY
如果过滤掉所有行,则带有 a 的聚合查询不返回任何行。
即使过滤掉所有行,带有no 的聚合查询也总是返回一行。GROUP BY
所以,只需删除GROUP BY
. 并将其更改SELECT
为:
select coalesce(sum(a.quantity), 0) - coalesce(max(cc.quantityCor), 0)
推荐阅读
- jquery - 使用 ajax 通过签名的 url 将文件上传到谷歌云存储
- git - 同步两个远程分支
- node.js - Nuxt.js + Vuetify 上的 SSR 应用程序中的 Heroku 服务器错误
- c# - 如何选择数据库表来更新运行时
- python - 将字符串响应转换为 json 或列表
- sqlite - 在 sqlite 中将列更改为主键
- python - 如何在纯文本字符串中屏蔽部分电子邮件地址以隐藏用户详细信息
- amazon-web-services - 在 AWS ELB 的目标组中添加 RDS 作为侦听器
- jmeter - 如何知道jmeter中请求的服务器处理时间是多少?
- python - 机器学习 - 分类问题