2013-03-21 79 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