2013-04-24 170 views
3

我希望有人可以幫助解決以下問題,我在使用Microsoft Access中的一些SQL更新查詢。運行SQL更新只查詢一次

我運行下面的代碼

UPDATE [Master Record] INNER JOIN [Family Members] ON [Master Record].[Family ID] = [Family Members].[Family ID] 
SET [Master Record].[Years Attendance] = ([Years Attendance]+1) 
WHERE ((([Family Members].Attending)=True)); 

除了事實,我只想遞增年出席即使多個家庭成員出席1次,其中一期工程。所以目前當我運行這個,如果有4個家庭成員參加,當我只想要1時,我得到4的增量。

我需要一些方法來增加如果出席率爲1,即使多個家庭成員參加。謝謝。

回答

1

有幾個方法可以做到這一點,但我可能只是使用IN代替JOIN

UPDATE [Master Record] 
SET [Years Attendance] = [Years Attendance]+1 
WHERE [Family ID] IN (
    SELECT [Family ID] 
    FROM [Family Members] 
    WHERE Attending=True 
) 
+0

真棒這個工程。我必須弄清楚它爲什麼會起作用,但非常感謝! – user2316117 2013-04-24 15:36:11

+0

@ user2316117 - np,很高興我能幫忙!基本上,您的加入會多次更新相同的記錄(對於「年齡家庭成員」表中的每條記錄,使用IN而不是JOIN只會更新主記錄表中的單個記錄。 – sgeddes 2013-04-24 16:57:20