Я в растерянности здесь. Я пытаюсь объединить две таблицы CSV, используя SQL через ADO в VBA. Функция заключается в сопоставлении курсов валют с конкретными датами и типами валют. Я использую строку, состоящую из даты и кода валюты, в качестве КЛЮЧА, чтобы попытаться сопоставить их, так как объединение совпадающих дат и кодов валют не сработало.
Вместо указания правильного курса валют, приведенный ниже код возвращает 1 или 0.
adoRS.Open "SELECT tmpFile.[KEY], fxFile.[KEY], tmpFile.[TRADE_DATE]," & _
"tmpFile.[CURR_CODE]," & _
"tmpFile.[VOLUME]," & _
"tmpFile.[TRADE_PRICE]," & _
"tmpFile.[CAD_VAL]," & _
"fxFile.[FX_PRICE]" & _
" FROM tempFile.csv tmpFile, " & _
" 2011FXRates.csv fxFile" & _
" WHERE tmpFile.[KEY]=fxFile.[KEY]", _
adoCxn, _
adOpenForwardOnly, _
adLockReadOnly, _
adCmdText
Как ни странно, КЛЮЧИ в порядке. Почему FX_PRICE не входит, как я ожидал? Есть идеи?
Пример данных
из файла tempFile.csv
KEY TRADE_DATE CURR_CODE VOLUME TRADE_PRICE CAD_VAL
40554-000 40554 0 600 1.5 900
40556-000 40556 0 800 0.75 600
40556-000 40556 0 1500 0.25 375
40556-000 40556 0 800 2.8 2240
40574-000 40574 0 300 1.3 390
С 2011FXRates.csv
KEY TRADE_DATE CURR_CODE FX_PRICE
40554-000 40554 0 1.2605
40555-000 40555 0 1.1609
40556-000 40556 0 1.1494
40557-000 40557 0 1.1362
40560-000 40560 0 1.128
UPDATE
Я только что заметил проблему - она берет только первую цифру на FX_PRICE, поэтому 1.xxx становится 1, 0.xxx становится 0. Как мне это исправить?