2013-07-30 67 views
0

首先我看了類似的問題,但沒有找到我的情況。 我會變得SQL訪問代碼如下(我沒有寫它)多部分標識符不能綁定在更新查詢中

UPDATE QUpdateTrialstepApproved1 
INNER JOIN TrialStepApproved ON 
QUpdateTrialstepApproved1.cid_req = TrialStepApproved.cID 
SET TrialStepApproved.wm21 = [wm2_req], 
TrialStepApproved.sw = [startweek_req], 
TrialStepApproved.PlannedTotalm2 = [m2_req], 
TrialStepApproved.ew = [endweek_req], 
TrialStepApproved.ActualNrofDiffEntries = [entries_req], 
TrialStepApproved.entryfactorTrial1 = [eFtrial_req], 
TrialStepApproved.fixeddeliveryweek = [fixedEndweek_req], 
TrialStepApproved.culturename = [culturename_req] 
WHERE (((QUpdateTrialstepApproved1.approveRequestChange)="v") 
AND ((TrialStepApproved.Location) Is Not Null)); 

我已經把它變成下面,但我得到的錯誤標題:

UPDATE A 
SET B.wm21 = [wm2_req], 
B.sw = [startweek_req], 
B.PlannedTotalm2 = [m2_req], 
B.ew = [endweek_req], 
B.ActualNrofDiffEntries = [entries_req], 
B.entryfactorTrial1 = [eFtrial_req], 
B.fixeddeliveryweek = [fixedEndweek_req], 
B.culturename = [culturename_req] 
from QUpdateTrialstepApproved1 as A 
INNER JOIN TrialStepApproved as B ON A.cid_req = B.cID 
WHERE A.approveRequestChange='v' AND B.Location Is Not Null 
+1

你可以; t更新A,然後讓查詢的設置部分使用=左側的另一個表。嘗試交換左右。 – HLGEM

+0

準確地說,我認爲,但我的困惑,它在訪問:) 你是什麼意思交換左和右? – AngelicCore

+2

您正在更新表格A但設置了表格B字段?您還使用了哪些DBMS? –

回答

2

您正在更新B,而不是A。將第一行改爲

UPDATE B 

......事情會正常工作。

An SQLfiddle

+0

這是我的想法,但不會改變它的意思嗎? 在原始訪問代碼中它正在更新A但在B中設置值 如果我將A更改爲B,則它將更新錯誤的表,是不是? – AngelicCore

+1

@AngelicCore Access將允許更新聯接中的第二個表,您可以在訪問查詢中切換表名,而無需更改任何內容。在這兩種情況下,你都在更新'TrialStepApproved'。 –

+0

甜,我不知道。 :) – AngelicCore

相關問題