Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
Mysql 操作sql表以获取一天内超额预订的员工_Mysql_Sql_Select_Group By - Fatal编程技术网

Mysql 操作sql表以获取一天内超额预订的员工

Mysql 操作sql表以获取一天内超额预订的员工,mysql,sql,select,group-by,Mysql,Sql,Select,Group By,我有三张桌子 1. Employees (empid, lname, fname, emptype, cellphone, homphone, ftpt) 2. Schedule(date, empid, dept_name, start_time, shift_length) 3. Departments(dept_name, dept manager)` 我们必须生成一个表格,列出所有因每天安排一次以上而超额预订的员工 select语句后的最后一个表应如下所示: 它是由员工ID排序的 以

我有三张桌子

1. Employees (empid, lname, fname, emptype, cellphone, homphone, ftpt)
2. Schedule(date, empid, dept_name, start_time, shift_length)
3. Departments(dept_name, dept manager)`
我们必须生成一个表格,列出所有因每天安排一次以上而超额预订的员工

select语句后的最后一个表应如下所示:

它是由员工ID排序的

以下是3个表的创建表:

CREATE TABLE Departments(department_name VARCHAR(30));
CREATE TABLE Employees(empid int PRIMARY KEY NOT NULL, lname VARCHAR(20) NOT NULL, fname VARCHAR(20) NOT NULL, emptype VARCHAR(5) NOT NULL, cellphone VARCHAR(20), homephone VARCHAR(20), ftpt VARCHAR(3) NOT NULL);
CREATE TABLE Schedule(date VARCHAR(20) NOT NULL, empid INT NOT NULL, department VARCHAR(30) NOT NULL, start_time VARCHAR(5) NOT NULL, shift_length INT NOT NULL );
样本数据

包含数据的文件-

您提供的一些列名不一致,因此您可能需要更改其中一些列名,以匹配数据库中的实际名称。但这应该让你开始

SELECT empid, lname as lastName, fname as firstName, date as [OVERBOOKED DATE], start_time as sfrom, Departments.dept_name as dname, dept_manager as MANAGER FROM Employees JOIN Schedule ON Employees.empid=Schedule.empid JOIN Departments on Schedule.dept_name=Departments.dept_name WHERE empid IN (SELECT empid FROM Schedule WHERE COUNT(*) > 1 GROUP BY date, empid)

你的问题不够详细。请发布三个表的模式,包括数据类型作为SQL语句,提供示例数据和预期结果。我添加了表的模式发布模式,数据作为SQL语句。通过将重要信息发布为图像,您正在为用户提供问题帮助设置障碍。请尽我所能编辑!现在,您只需要以可用格式发布示例数据,并澄清确定员工是否超额预订的条件。我已经修复了它,现在正在使用它:选择E.empid,E.lname作为lastName,E.fname作为firstName,S.date作为超额预订日期,S.start_time作为sfrom,D.department_name作为dname,D.dept_经理作为员工E的经理,计划S,部门D加入E.empid=S.empid加入S.department=D.department\u名称中的部门E.empid从计划中选择empid,其中COUNT*>1组按超售日期,E.empid;但它给了我一个错误,即组函数的使用无效。我尝试按部分删除Group By,但它仍然会给我相同的错误Group By需要在COUNT*>1之后位于括号内,并将E.empid更改为Schedule.empid