mysql - 使参与日期范围的小时数总和
问题描述
借助几种辅助工具,我能够做出此选择,但我需要添加小时数,而不是重复学生,并且当学生未参加该日期范围时显示零结果:
**students TABLE**
s_id
s_laname
s_mname
s_fname
s_grupo
**horas TABLE**
id
s_id
horas
fecha
grupo
SELECT students.s_lname, horas.horas
FROM students
LEFT JOIN horas ON students.s_id=horas.s_id
and horas.fecha >= '2020-11-01'
AND horas.fecha <= '2020-11-30'
AND horas.horas >'0'
WHERE students.s_grupo IN('11')
这是我发布的选择的结果,但我需要它来计算时间的总和:
s_lname horas
Molina 12
Mejías 12
Corrales 10
Sáenz 15
Castro 11
Hernandez 11
Sáenz 12
Hernandez 6
Hernandez 6
Sáenz 12
Brizuela NULL
Vargas NULL
Acuña NULL
Jiménez NULL
López. NULL
Jimenez NULL
Vargas NULL
Navarro NULL
这将是我所需要的,有时间总和并且没有参与放置 NULL 或零的学生:
s_lname horas
Molina 12
Mejías 12
Corrales 10
Sáenz 39
Castro 11
Hernandez 33
Brizuela NULL
Vargas NULL
Acuña NULL
Jiménez NULL
López NULL
Jimenez NULL
Vargas NULL
Navarro NULL
解决方案
听起来您可以添加一个不同的关键字并使用内连接而不是左连接:
编辑:根据您的结果和您想要的结果,我猜您想总结结果,如果这是真的,那么......
SELECT students.s_lname, SUM(horas.horas)
FROM students
LEFT JOIN horas ON students.s_id=horas.s_id
and horas.fecha >= '2020-11-01'
AND horas.fecha <= '2020-11-30'
AND horas.horas >'0'
WHERE students.s_grupo IN('11')
Group by students.s_id
推荐阅读
- vue.js - 如何用玩笑为输入文件设置值
- reactjs - ons-navigator:错误:模块解析失败:意外令牌 (330:6)
- python - 将txt文件读入Anaconda?
- reactjs - 我需要做一个登录到 API 的 React.js 应用程序,以使用 Axios 从当前会话中获取会话密钥
- javascript - 如何保存对象的初始语句?
- python - 思考 Python 练习 6.1
- angularjs - Karma $filter 错误:[$injector:unpr] 未知提供者:nProvider <- n
- spring - spring bean 自注入是否适用于新的 spring 版本?
- c - 使 2 个循环并行运行
- c - 如何计算整数数组中的元素数