2013-11-27 51 views
0

我在基於make表查詢的Access中編寫更新查詢。在WHERE條件中使用IIf()更新查詢

在我的臨時表(我的make table查詢的輸出)中,我有3個字段[Tick],[DivLevel4]和[T]。我可以有相同的蜱爲[DivLevel4]如果[T]負有不同的值(僅C或F)顯示不同的值:

Tick DivLevel4 T 

AA  5   C 
AA  0   F 
BB  2   C 
CC  3   C 
CC  0   F 

我怎樣才能納入我的更新查詢這種狀況呢?我曾嘗試添加在標準領域的IIf()語句,但它沒有做的工作:

IIf([tblTrades].[T]="Y",0,[tbl_DIV_Temp].[[DivLevel4]) 

UPDATE 
    tblTrades 
    INNER JOIN 
    tbl_DIV_Temp 
     ON tblTrades.Tick = tbl_DIV_Temp.Tick 
SET tblTrades.DIV = [tbl_DIV_Temp].[DivLevel4] 
WHERE (((tblTrades.DIV)=IIf([tblTrades].[T]="F",0,[tbl_DIV_Temp].[DivLevel4]))); 
+0

是否有任何理由不能只運行兩個更新語句來涵蓋兩種不同的條件?我不確定你想做什麼是可能的。另一個選擇是使用DLookup獲取tbl_Div_Temp.DivLevel4的值,然後在Update Statement中使用原始值(使用變量)。 – HK1

+0

你問'tblTrades.T =「F」'時如何設置'tblTrades.DIV = tbl_DIV_Temp.DivLevel4'? – Blackhawk

+0

還是你打算(因爲你的if語句暗示)「設置tblTrades.DIV = tbl_DIV_Temp.Tick,除非tblTrades.T =」F「,在這種情況下設置tblTrades.DIV = 0」? – Blackhawk

回答

0

主題是密切。替代方法找到。