我有以下查詢,它顯示特定組(A1,B1..etc)和特定部門中的員工總數。Oracle Sql查詢在沒有數據時返回行
問題是當特定日期沒有特定部門的數據時,那麼該部門名稱的行根本沒有顯示,我希望查詢顯示所有行/部門名稱,即使他們有數據在它或不。在這種情況下它應該顯示'0'。
SELECT NVL(TO_CHAR(COALESCE(dept_name,'NA')),'TOTAL') AS Department,
SUM (
CASE
WHEN (emp_group IN('ABC','CDE','EFG','GHI'))
THEN 1
ELSE 0
END) AS A1,
SUM(
CASE
WHEN (emp_group IN ('XYZ'))
THEN 1
ELSE 0
END) AS B1,
SUM (
CASE
WHEN (emp_group IN ('ABC','CDE','EFG','GHI','XYZ'))
THEN 1
ELSE 0
END) AS TOTAL
FROM emp e
WHERE
dept_name IN('IT','FI','ACC')
AND e.transaction_date = trunc(sysdate)
GROUP BY rollup(COALESCE(dept_name,'NA'))
在此先感謝
也許你應該閱讀有關外連接。 – beerbajay
只有存在可用的表格時,左連接才能工作。有部門表嗎?是否有從外部到外部的外鍵? –
不,只有一張桌子,那是'emp'。 – Akshay