oracle 外连接 默认,sql – Joins:如何返回左外连接的空右侧的默认值

在我的Oracle数据库中,我有一个左外连接,用于父工作订单到其子工作程序.然后我运行一个计算执行一些子值的SUM().我将来自Nvl()中的子工作程序的结果包装起来,以确保它们能够正确计算.

这是有效的,除非父母没有子工作人员.在这种情况下,显示期间返回的“空值”是因为连接中没有结果,因此看起来Nvl([fieldname],0)不会将它们转换为显示0.因此,当我认为总结时具有父值的子值,由于向空值添加值,它们也返回null.

什么是最好的解决方法?这是可以解决的问题,还是从根本上解决了我的查询有问题的气味?

查询

对不起,我暂时无法发布设置.对于此特定工作顺序(硬编码),连接的“右手”部分为空,因为父级没有子级,因此显示为null.

SELECT *

FROM (SELECT *

FROM R_PCR_ALLWOSANDTASKSSEPARATELY)WOINFO

LEFT OUTER JOIN (SELECT WORKORDERNUMBER AS TASKWORKORDRENUMBER

, PARENT AS TASKPARENT

, NVL(TOTALMATESTCOSTFORWO, 0) AS TOTALMATESTCOSTFORWO_TASK

, NVL(TOTALLABESTCOSTFORWO,0) AS TOTALLABESTCOSTFORWO_TASK

, NVL(TOTALMATACTCOSTFORWO,0) AS TOTALMATACTCOSTFORWO_TASK

, NVL(TOTALLABACTCOSTFORWO,0) AS TOTALLABACTCOSTFORWO_TASK

, NVL(TOTALLABACTHOURSFORWO,0) AS TOTALLABACTHOURSFORWO_TASK

FROM R_PCR_ALLWOSANDTASKSSEPARATELY)TASKINFO

ON ( WOINFO.WORKORDERNUMBER = TASKINFO.TASKPARENT )

WHERE WORKORDERNUMBER = '2826059';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值