求和NULL或将NULL转换为0以求和sql db2.iseries

求和NULL或将NULL转换为0以求和sql db2.iseries,sql,db2,Sql,Db2,我是SQL的新手,目前正在尝试查询DB2.iSeries数据库,我被卡住了 这是我的代码: SELECT IPROD, IDESC, IMRP, NONAV FROM (SELECT IPROD, IDESC, IMRP FROM IIM WHERE IBUYC IN (<pln.value>) AND IMRP = 'N') AS IM INNER JOIN (SELECT I01PROD FROM INV01P WHERE I01SUPS = '0' AND I01SUPP

我是SQL的新手,目前正在尝试查询DB2.iSeries数据库,我被卡住了

这是我的代码:

SELECT IPROD, IDESC, IMRP, NONAV
FROM

(SELECT IPROD, IDESC, IMRP FROM IIM WHERE IBUYC IN (<pln.value>) AND IMRP = 'N') AS IM

INNER JOIN
(SELECT I01PROD FROM INV01P
WHERE I01SUPS = '0'
AND I01SUPP = '0')
AS L1 ON IM.IPROD = L1.I01PROD

LEFT OUTER JOIN
(SELECT WPROD, SUM(WOPB-WISS+WADJ+WRCT) AS NONAV FROM IWI
WHERE LEFT(WWHS,1) = '9'
GROUP BY WPROD) AS L2 ON IM.IPROD = L2.WPROD

GROUP BY IPROD, IDESC, IMRP, NONAV
HAVING SUM(NONAV) = 0

ORDER BY IPROD
FETCH FIRST 10000 ROWS ONLY
这是我的代码,在查询时可以很好地工作:sumnanav=0,但我的问题是有些产品的值为NULL,我也需要提取这些值

我在查询的不同点尝试了IFNULL,但失败了

我知道如何将字段输出视图设置为0,但当涉及到求和时,它无法提取这些乘积

有人能帮我在字段求和后提取NULL和0值吗


谢谢

现在您只需优化内部选择,我不太明白您的意思
SELECT IPROD, IDESC, IMRP, NONAV
FROM

(SELECT IPROD, IDESC, IMRP FROM IIM WHERE IBUYC IN (<pln.value>) AND IMRP = 'N') AS IM

INNER JOIN
(SELECT I01PROD FROM INV01P
WHERE I01SUPS = '0'
AND I01SUPP = '0')
AS L1 ON IM.IPROD = L1.I01PROD

LEFT OUTER JOIN
(SELECT WPROD, SUM(WOPB-WISS+WADJ+WRCT) AS NONAV FROM IWI
WHERE LEFT(WWHS,1) = '9'
GROUP BY WPROD) AS L2 ON IM.IPROD = L2.WPROD

GROUP BY IPROD, IDESC, IMRP, NONAV
HAVING SUM(COALESCE(NONAV,0)) = 0

ORDER BY IPROD
FETCH FIRST 10000 ROWS ONLY