2013-09-24 47 views
0

我想在执行两阶段货币转换的访问中运行查询。 它从交易货币的汇率表中获得汇率,然后计算该地区的汇率。访问查询与多个where子句

有没有办法在一个查询中做到这一点。我在下面尝试,但得到语法错误。

UPDATE REPORT 
SET REPORT.[Conversion Rate] = 
(

(
Exchange_Rates.Rate 
Where 
Exchange_Rates.code = REPORT.[Transaction Currency Code] 
) 

/

(
Exchange_Rates.Rate 
Where 
Exchange_Rates.code = REPORT.[Regional Currency Code] 
) 

) 

回答

0

您可以使用访问UPDATE JOIN语法汇率表连接到报告表:

UPDATE (Report 
     INNER JOIN Exchange_Rates tr 
      ON tr.code = Report.[Transaction Currency Code]) 
     INNER JOIN Exchange_rates reg 
      ON reg.code = report.[Regional Currency Code] 
SET  [Conversion Rate] = tr.Rate/reg.Rate; 

注:你需要加入两次,同时获得汇率

另一种选择是使用DLOOKUP功能:

UPDATE REPORT 
SET  [Conversion Rate] = Dlookup("Rate", "Exchange_Rate", "Code = " & Report.[Transaction Currency Code]) 
          /
          Dlookup("Rate", "Exchange_Rate", "Code = " & Report.[Regional Currency Code]) 
+0

由于内部联接完美的伎俩。 –