2013-03-21 55 views
5

我不太了解SQL - 我只写了一个RFID学生注册扫描程序,它与SQL Server中的数据库接口。使用多个表的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 ; 
+0

''1100''?这些专栏是什么,Varchars? – 2013-03-21 18:24:20

回答

7

好吧,你需要做这样的事情:

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 

我猜对了你的表的列,但它s应该非常接近你所拥有的,你需要使用真正的列。

+0

救世主!现在工作。谢谢! – 2013-03-21 18:31:42