Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 Server更新_Sql_Sql Server - Fatal编程技术网

使用多个表进行SQL Server更新

使用多个表进行SQL Server更新,sql,sql-server,Sql,Sql Server,我对SQL了解不多——我只是在编写一个RFID学生注册扫描仪,它可以连接到SQL Server中的数据库 我相信这很容易做到,但我找不到解决问题的办法 我希望能够以一种基本的形式做这样的事情,但这是行不通的: UPDATE Attendance SET A1 = 'TRUE' WHERE Student.ID = '3a0070c48' AND Module.Day = 'Friday' ; 但完整的SQL更新需要如下所示: UPDATE Attendance SET

我对SQL了解不多——我只是在编写一个RFID学生注册扫描仪,它可以连接到SQL Server中的数据库

我相信这很容易做到,但我找不到解决问题的办法

我希望能够以一种基本的形式做这样的事情,但这是行不通的:

UPDATE Attendance 
SET    A1 = 'TRUE' 
WHERE  Student.ID = '3a0070c48' 
  AND  Module.Day = 'Friday' ;
但完整的SQL更新需要如下所示:

UPDATE Attendance 
SET    A1 = 'TRUE' 
WHERE  Student.ID = '3a0070c48' 
  AND  Module.Day = 'Friday' 
  AND  '1100' BETWEEN Module.StartTime 
                  AND Module.EndTime ;
UPDATE A
SET A.A1 = 'TRUE' 
FROM Attendance A
INNER JOIN Student S
    ON A.StudentId = S.ID
INNER JOIN Module M
    ON A.ModuleId = M.ID
WHERE S.ID = '3a0070c48' 
AND M.[Day] = 'Friday' 
AND '1100' BETWEEN M.StartTime AND M.EndTime

好的,你需要这样做:

UPDATE Attendance 
SET    A1 = 'TRUE' 
WHERE  Student.ID = '3a0070c48' 
  AND  Module.Day = 'Friday' 
  AND  '1100' BETWEEN Module.StartTime 
                  AND Module.EndTime ;
UPDATE A
SET A.A1 = 'TRUE' 
FROM Attendance A
INNER JOIN Student S
    ON A.StudentId = S.ID
INNER JOIN Module M
    ON A.ModuleId = M.ID
WHERE S.ID = '3a0070c48' 
AND M.[Day] = 'Friday' 
AND '1100' BETWEEN M.StartTime AND M.EndTime

我猜测了与您的表相关的列,但它应该非常接近您所拥有的列,您需要使用真实的列。

'1100'
?这些柱子是什么,瓦查尔?救世主!!现在工作很愉快。谢谢