我正在查询三个表。TABLE1 A和TABLE2 B在DEPTID上的比例为1:1。但是,TABLE3 C并不包含0值。在与TABLE3 A或TABLE1 B进行左外部连接时,我可以成功地从TABLE2 C获取COUNT给我0个值,但当我将所有三个表连接在一起时,它会给我(null)而不是0。我需要它返回0而不是(null)。非常感谢您的帮助:
SELECT A.DEPTID, B.DEPT_NAME, SUM(C.HEAD_COUNT)
FROM TABLE1 A
LEFT JOIN TABLE2 B ON A.DEPTID = B.DEPTID
LEFT OUTER JOIN TABLE3 C ON A.POSITION_NUMBER = C.POSITION_NUMBER
GROUP BY A.DEPTID, B.DEPT_NAME这是我目前得到的:
部门1:编制9人
部门2:编制11人
部门3:(空)
发布于 2016-06-03 05:40:03
使用COALESCE()或NVL()将0替换为NULL值:
SELECT A.DEPTID,
B.DEPT_NAME,
SUM(COALESCE( C.HEAD_COUNT, 0 ) )
FROM TABLE1 A
LEFT OUTER JOIN TABLE2 B
ON A.DEPTID = B.DEPTID
LEFT OUTER JOIN TABLE3 C
ON A.POSITION_NUMBER = C.POSITION_NUMBER
GROUP BY A.DEPTID,
B.DEPT_NAMEhttps://stackoverflow.com/questions/37601984
复制相似问题