我有两个表名为Employee
和Time
。如果员工代码1E的所有TaskList都是y,我想分配OnTrack=y
。根据SQL中的表值更新其他表
我尝试这样做,我坚持
UPDATE Employee
SET OnTrack = 'y'
FROM Employee e
WHERE e.Code IN
INNER JOIN (SELECT EmployeeCode FROM Time WHERE status = 'P') permanent
ON permanent.Employeecode = e.Code
AND permanent.Employeecode NOT IN
(SELECT EmployeeCode FROM Time t WHERE t.EmployeeCode=permanent.Employeecode and t.tasklist<>'y')
我的代码只更新一行。任何人都可以帮忙吗?
Employee表:
Code Name Hours OnTrack
***********************************
1E SCOTT 32
2E LISA 32
3E MARK 32
时间表是
Code Employeecode Status workingHours TaskList
********************************************************
1A 1E P 8 Y
2A 1E P 8 Y
3A 1E P 8 N
4A 2E T 8 Y
5A 2E T 0 Y
6A 3E P 8 Y
结果什么期望在员工表,OnTrack的状态应为如果所有的员工代码具有的“是”时间表更新如下所示:
Code Name Hours OnTrack
1E SCOTT 24 N
2E LISA 12 Y
3E MARK 0 Y
我不确定查询甚至是如何工作的。 –
哪个RDBMS是为了这个?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –
@ user3331421请格式化您的最新更新,以使它们不可读取。 – objectNotFound