2013-09-24 4 views
0

Я пытаюсь запустить запрос в доступе, который выполняет двухэтапное преобразование валюты. Курс обмена валют в валюте обмена валют, а затем принимает курс валюты региона.запрос доступа с несколькими предложениями

Есть ли способ сделать это в рамках одного запроса. Я попытался ниже, но получаю синтаксические ошибки.

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 синтаксис 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

Благодаря Внутренний Вступи сделал трюк отлично. –

Смежные вопросы