首页 文章

Oracle SQL - 左连接左外连接

提问于
浏览
0

我在查询三张 table . 表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:员 Worker 数9
第2部分:人数11
第3部分:( null)

1 回答

  • 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
    

相关问题