我希望創建一個選擇查詢,該查詢將有一列計算某人在某個月接受培訓的次數。我設法讓它顯示在那個特定月份參加培訓課程的人員串列,但我想向其他所有人展示他們參加的課程的 0 計數。我該怎么做?
SELECT
carer.carer_firstname, carer.carer_lastname,
COUNT(carer_training_link.carer_id) AS sessions_attended_May
FROM
carer, carer_training_link
WHERE
carer.carer_id = carer_training_link.carer_id
AND carer_training_link.training_date BETWEEN TO_DATE('01/MAY/2019', 'DD/MON/YYYY')
AND TO_DATE('01/JUN/2019', 'DD/MON/YYYY')
GROUP BY
carer.carer_firstname, carer.carer_lastname;
uj5u.com熱心網友回復:
您正在使用只能稱為古董的連接語法。
您需要外部聯接,以便包括未受過培訓的護理人員。
日期范圍最好與>=和進行比較<。
SELECT
c.carer_firstname, c.carer_lastname,
COUNT(cl.carer_id) AS sessions_attended_may
FROM carer c
LEFT OUTER JOIN carer_training_link cl
ON cl.carer_id = c.carer_id
AND cl.training_date >= DATE '2019-05-01'
AND cl.training_date < DATE '2019-06-01'
GROUP BY c.carer_firstname, c.carer_lastname
ORDER BY c.carer_firstname, c.carer_lastname;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385717.html
