MS Access Inner Join - объединение в предложении ON - PullRequest
0 голосов
/ 01 июня 2018

Пример рабочего кода для SQL SERVER

Select Top 1 bc.Tier_Name, bc.Unit_ID, bc.Name, bc.Description_2 
FROM bc_subs as bc INNER JOIN Product_V as v
ON  v.ABC = 'ABC: ' + bc.Unit_ID

Пример кода проблемы для Access SQL VBA

"Select Top 1 bc.Tier_Name, bc.Unit_ID, bc.Name, bc.Description_2 " & _
"FROM bc_subs as bc INNER JOIN Product_V as v" & _
"ON v.ABC = " & "ABC: " & "bc.Unit_ID "

В Access я пытаюсь выполнить INNER JOIN для таблицы, но частьобъединение должно заключать строку в начало значения.Ключ таблицы V - это ABC: 123, но ключ в BC - просто 123, поэтому я должен добавить ABC: к шрифту 123, чтобы обе стороны были равны ABC: 123.

У меня естьпробовал несколько вариантов строки SQL VBA Access, но, похоже, соединение не работает правильно.

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

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Кавычки, которые вы используете для объединения, разбить вашу строку.Вы можете использовать двойные кавычки, чтобы избежать их, и получить то, что функционально эквивалентно вашему запросу к SQL-серверу.

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

"Select bc.Tier_Name, bc.Unit_ID, bc.Name, bc.Description_2 " & _
"FROM bc_subs as bc INNER JOIN Product_V as v " & _
"ON (v.ABC = ""ABC: "" & bc.Unit_ID) "

Кроме того, вы можете написать это как CROSS JOIN:

"Select bc.Tier_Name, bc.Unit_ID, bc.Name, bc.Description_2 " & _
"FROM bc_subs as bc, Product_V as v " & _
"WHERE (v.ABC = ""ABC: "" & bc.Unit_ID) "
0 голосов
/ 01 июня 2018

Вы пропустите пробел и некоторые цитаты:

"bc.Tier_Name, bc.Unit_ID, bc.Name, bc.Description_2 " & _
"FROM bc_subs as bc INNER JOIN Product_V as v " & _
"ON v.ABC = 'ABC:' + bc.Unit_ID"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...