我尝试过在函数之间进行转换,将字符串转换为日期,例如查询。反正有没有找出特定月份的工资?
SELECT d.DEPT_NAME AS DeptName, SUM(s.SAL_AMOUNT) AS TotalSal
FROM salary_history s
LEFT JOIN department d ON s.EMP_NUM = d.EMP_NUM
WHERE s.SAL_FROM between '2017-06-01' and '2017-06-32'
GROUP BY d.DEPT_NAME;
模式:
department(dept_num, dept_name, emp_num)
employee(emp_num, emp_name, dept_num)
salary_history(emp_num, sal_from, sal_end, sal_amt)
感谢您的帮助。
6月32日不是有效日期。
使用半开间隔通常更简单,因此您不必担心调整月底:
select d.dept_name as deptname, sum(s.sal_amount) as totalsal
from salary_history s
left join department d on s.emp_num = d.emp_num
where s.sal_from >= '2017-06-01' and s.sal_from < '2017-07-01'
group by d.dept_name;