gpt4 book ai didi

sql - 加入 : How to Return default values for empty right side of left outer join

转载 作者:行者123 更新时间:2023-12-05 00:35:20 25 4
gpt4 key购买 nike

在我的 Oracle 数据库中,我有一个父工单与其子工单的左外部联接。然后我运行一个计算,执行一些子值的 SUM()。我将子工单的结果包装在 Nvl() 中,以确保正确计算它们。

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

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

查询

抱歉,我目前无法发布它的设置。对于这个特定的工作订单(硬编码),连接的“右手”部分是空的,因为父级没有子级,因此显示为空。

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';

最佳答案

LEFT join 返回结果后需要应用NVL。

尝试这个:

SELECT  WOINFO.*
, TASKWORKORDRENUMBER
, TASKPARENT
, NVL(TOTALMATESTCOSTFORWO_TASK,0) AS TOTALMATESTCOSTFORWO_TASK
, NVL(TOTALLABESTCOSTFORWO_TASK,0) AS TOTALLABESTCOSTFORWO_TASK
, NVL(TOTALMATACTCOSTFORWO_TASK,0) AS TOTALMATACTCOSTFORWO_TASK
, NVL(TOTALLABACTCOSTFORWO_TASK,0) AS TOTALLABACTCOSTFORWO_TASK
, NVL(TOTALLABACTHOURSFORWO_TASK,0) AS TOTALLABACTHOURSFORWO_TASK
FROM R_PCR_ALLWOSANDTASKSSEPARATELY WOINFO
LEFT OUTER JOIN (SELECT WORKORDERNUMBER AS TASKWORKORDRENUMBER
, PARENT AS TASKPARENT
, TOTALMATESTCOSTFORWO_TASK
, TOTALLABESTCOSTFORWO_TASK
, TOTALMATACTCOSTFORWO_TASK
, TOTALLABACTCOSTFORWO_TASK
, TOTALLABACTHOURSFORWO_TASK
FROM R_PCR_ALLWOSANDTASKSSEPARATELY) TASKINFO
ON ( WOINFO.WORKORDERNUMBER = TASKINFO.TASKPARENT )
WHERE WORKORDERNUMBER = '2826059';

关于sql - 加入 : How to Return default values for empty right side of left outer join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9527296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com