【发布时间】:2022-01-19 01:32:52
【问题描述】:
我希望创建一个选择查询,该查询将有一列计算某人在某个月份接受培训的次数。我已经设法让它显示在那个特定月份参加培训课程的人的名单,但我也想向其他所有人展示他们参加的课程计数为 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;
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(差不多 30 年前),不鼓励使用它 -
另一个要改掉的坏习惯:使用表名作为列名的冗余前缀。还有一个要改掉的坏习惯:在不提供表定义的情况下寻求查询帮助,假设人们可以根据查询代码找出答案。见minimal reproducible exampl
-
@marc_s 感谢您的提醒! :)
-
@EdStevens 我会采纳建议的,谢谢。