使用多个where子句访问查询

时间:2013-09-24 15:26:20

标签: sql ms-access-2007 jet

我正在尝试在访问中运行一个执行两阶段货币转换的查询。 它采用交易货币中的汇率表中的汇率,然后采用该地区的汇率。

有没有办法在一个查询中执行此操作。我尝试过以下但是语法错误。

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]
)

)

1 个答案:

答案 0 :(得分: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;

N.B。您需要加入两次以获得两种汇率

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

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