Запрос Access Select, где исходное поле основано на другом столбце - PullRequest
2 голосов
/ 21 января 2020

Я использую MS Access для обмена валют. У меня есть таблица, в которой перечислены валюты и связанные с ними курсы валют. Каждый столбец имеет ставку для другого месяца. например, «Январь 2019», «Февраль 2019» и т. д. c

У меня есть другая таблица со списком дат и валют, и я хочу создать запрос на выборку, который возвращает курс валюты для соответствующей валюты за соответствующий месяц.

Я создал поле, которое преобразует дату в формат, соответствующий имени поля в таблице исходных данных, поэтому, например, дата 12/01/2019 отображается как январь 2019 года ( и определил это как FX_period)

По сути, я хочу, чтобы поле источника использовалось на основе другого поля в этом запросе. Например: Январь даты: исходное поле TBL10_FX_BS_Rates. [Январь 2019] AS FX_Rate
Февральские даты: исходное поле TBL10_FX_BS_Rates. [Февраль 2019] AS FX_Rate

Итак, в итоге у меня всего 3 столбца: Дата, валюта и валютный курс

Я перепробовал множество вещей, в том числе: SET "[tablename]! [" & FX_period &] "как FX_RATE

Надеюсь, что это имеет смысл!

1 Ответ

2 голосов
/ 21 января 2020

Таблица с полем для каждого месяца / года не является нормализованной структурой. Нормализуйте структуру TBL10_FX_BS_Rates, затем объедините таблицы в запросе. На самом деле, нормализованной таблицы может быть достаточно - зависит от того, есть ли другие поля в таблице валют. В противном случае используйте DLookup () - что-то вроде:

SELECT CurrencyDate, Currency, 
   DLookUp(Format([CurrencyDate],"mmmmyyyy"),"TBL10_FX_BS_Rates","Currency='" & [Currency] & "'") AS Rate
FROM Currencies;

Не рекомендуется использовать пробелы, знаки препинания / специальные символы (только подчеркивание) в соглашении об именах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...