Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL以查看员工每年的休假_Sql_Ms Access - Fatal编程技术网

SQL以查看员工每年的休假

SQL以查看员工每年的休假,sql,ms-access,Sql,Ms Access,我正在使用ACCESS运行SQL查询 我想显示所有员工(医生)每年的假期 这是我的SQL代码: SELECT doctors.Name, 31-sum(DateDiff("d",leaves.leave_starting_date,leaves.leave_end_date)) as days FROM doctors INNER JOIN leaves ON doctors.ID = leaves.doctor_id GROUP BY doctors.Name, YEAR(leaves.l

我正在使用
ACCESS
运行
SQL
查询

我想显示所有员工(医生)每年的假期

这是我的
SQL
代码:

SELECT doctors.Name,  
31-sum(DateDiff("d",leaves.leave_starting_date,leaves.leave_end_date)) as days
FROM doctors INNER JOIN leaves ON doctors.ID = leaves.doctor_id
GROUP BY doctors.Name, YEAR(leaves.leave_starting_date)
我有两个问题:

  • 如果医生还没有休假日期,我无法将31视为休假天数
  • 我无法将每年的叶子区分为新的列
    我不明白你在这里的意思“我不能把每年的叶子区分为新的列。”。至于你的第一个问题:用左外连接代替内连接。@jnevil我可以看到每个员工每年都有一行新词。相反,我需要显示每列的年份。啊!好的,在这种情况下,保持当前查询不变(更改为左外部联接以解决问题1)。您要做的是在它上面创建一个交叉表查询,以便在列中输入年份。@jnevil谢谢。如果天数为空,是否有办法显示数字“31”?您可以执行
    31-nz(sum(DateDiff(“d”,leaves.leave\u start\u date,leaves.leave\u end\u date)),0)
    ,以便它减去0而不是空值。