我正在查询三张桌子。表1A和表2B在DEPTID上具有一对一的比率。但是,表3C不保持0值。在使用TABLE1 A或TABLE2 B进行LEFT OUTER JOIN时,我可以成功获取COUNT以从TABLE3 C给出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部分:( null)
答案 0 :(得分:0)
使用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_NAME