문제

I am trying to run a query in access which carries out a two stage currency conversion. It takes an exchange rate from a Exchange Rates Table in the transactional Currency and then takes the Exchange rate of the Region.

Is there any way to do this within the one query. I have attempted below but am getting syntax errors.

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

)
도움이 되었습니까?

해결책

You can use the access UPDATE JOIN syntax to JOIN the exchange rate table to the Report table:

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. You need to join twice to get both exchange rates

Another option is to use the DLOOKUP function:

UPDATE  REPORT 
SET     [Conversion Rate] = Dlookup("Rate", "Exchange_Rate", "Code = " & Report.[Transaction Currency Code])
                            /
                            Dlookup("Rate", "Exchange_Rate", "Code = " & Report.[Regional Currency Code])
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top