SQL 上的 GROUP BY 和 JOIN 有问题
Trouble With GROUP BY and JOIN on SQL
我有 2 个 table,一个有员工姓名和员工代码,另一个有相同的员工代码,但有员工的到达和离开时间。后者的一列 table 包含一个 varchar,说明他们是迟到还是早到,table 显示 3 天和 6 名员工的值。
我需要使用 join 来显示第一个 table 中的名字和姓氏以及第二个 table 中的每一列,并且不显示迟到一次或多次的员工。
我现在的损坏代码是:
SELECT
EmpRegister.LastName,
EmpRegister.FirstName,
TimeSheet.*
FROM EmpRegister
INNER JOIN TimeSheet ON EmpRegister.ID=TimeSheet.EmpID
WHERE Flag <> 'Late'
GROUP BY Emp.ID
我没有时间编一组测试数据,但是试试这个:
SELECT DISTINCT
EmpRegister.LastName,
EmpRegister.FirstName,
TimeSheet.*
FROM EmpRegister
INNER JOIN TimeSheet
ON EmpRegister.ID=TimeSheet.EmpID
WHERE NOT EXISTS (
SELECT 1
FROM TimeSheet
WHERE EmpRegister.ID = TimeSheet.EmpID
AND Flag = 'Late'
)
我有 2 个 table,一个有员工姓名和员工代码,另一个有相同的员工代码,但有员工的到达和离开时间。后者的一列 table 包含一个 varchar,说明他们是迟到还是早到,table 显示 3 天和 6 名员工的值。 我需要使用 join 来显示第一个 table 中的名字和姓氏以及第二个 table 中的每一列,并且不显示迟到一次或多次的员工。 我现在的损坏代码是:
SELECT
EmpRegister.LastName,
EmpRegister.FirstName,
TimeSheet.*
FROM EmpRegister
INNER JOIN TimeSheet ON EmpRegister.ID=TimeSheet.EmpID
WHERE Flag <> 'Late'
GROUP BY Emp.ID
我没有时间编一组测试数据,但是试试这个:
SELECT DISTINCT
EmpRegister.LastName,
EmpRegister.FirstName,
TimeSheet.*
FROM EmpRegister
INNER JOIN TimeSheet
ON EmpRegister.ID=TimeSheet.EmpID
WHERE NOT EXISTS (
SELECT 1
FROM TimeSheet
WHERE EmpRegister.ID = TimeSheet.EmpID
AND Flag = 'Late'
)