查询2021年1月份应出勤的天数(不考虑节假日),将员工姓名和应出勤天数存为视图table2。(字段:emp_name att_days)
时间: 2024-02-27 15:56:35 浏览: 116
好的,根据您的要求,我来为您解答。
假设我们有两张表,一张是员工信息表employee,另一张是日历信息表calendar。employee表中有员工ID(employee_id)和员工姓名(emp_name)两个字段,calendar表中有日期(date)和是否工作日(is_workday)两个字段。
我们可以通过以下的 SQL 语句创建视图,来查询2021年1月份应出勤的天数,并将员工姓名和应出勤天数存为视图table2:
```
CREATE VIEW table2 AS
SELECT e.emp_name, COUNT(*) AS att_days
FROM employee e, calendar c
WHERE e.employee_id IN (
SELECT DISTINCT employee_id
FROM attendance
) AND c.date >= '2021-01-01' AND c.date <= '2021-01-31' AND c.is_workday = 1
GROUP BY e.emp_name;
```
这个视图包含了员工姓名(emp_name)和应出勤天数(att_days)两个字段。我们使用了employee表和calendar表进行联结,并使用attendance表进行筛选,以计算每个员工在2021年1月份应出勤的天数。具体来说,我们使用了一个子查询来获取在考勤表attendance中出现过的员工ID,然后在calendar表中筛选出2021年1月份的工作日,最后使用GROUP BY来对员工姓名进行汇总。
现在,我们可以通过查询这个视图来获取员工姓名和应出勤天数了。例如,如果我们想要查看这个视图中所有员工的信息,可以使用以下的SQL语句:
```
SELECT *
FROM table2;
```
以上就是根据您的要求,查询2021年1月份应出勤的天数,并将员工姓名和应出勤天数存为视图table2的方法。希望能够对您有所帮助。
阅读全文