У меня есть оператор SQL, заданный в виде строки. Всякий раз, когда я выполняю вызов в моем приложении локально, я получаю сообщение об ошибке, в котором кажется, что SQL не создается должным образом и не разделяется запятой между двумя разными столбцами. Мне интересно, почему это происходит. Есть оператор Iif с выражением между этими столбцами, но я не уверен синтаксически, как сделать поле разделенным.
Ошибка, которую я получаю:
Обнаружено исключение: «System.Data.SqlClient.SqlException» в System.Data.dll («Неверное имя столбца« CONTACT_EMAILT ».»)
Ниже приведена существующая строка запроса:
strSQLXL = "SELECT V.VND_NBR
,VND_NAME
,C.CONTACT_NAME
,C.CONTACT_EMAIL," & IIf(MyApp.objUserShadow.CountryUserSelected = 1, "T.[NAME] AS CONTACT_TYPE ", " ") & "
FROM dbo.TBL_VND_VBU AS V
INNER JOIN dbo.TBL_VND_VBU_CONTACT AS C
ON V.VND_NBR = C.VND_NBR AND V.CRY_CD = C.CRY_CD
INNER JOIN dbo.TBL_VND_TYPE AS T
ON C.CONTACT_TYPE = T.ID
WHERE V.CRY_CD = " & VMS.objUserShadow.CountryUserSelected
Вывод, когда я выполняю это для журналов Intellitrace, выглядит следующим образом:
SELECT V.VND_NBR
,VND_NAME
,C.CONTACT_NAME
,C.CONTACT_EMAILT.[NAME] AS CONTACT_TYPE
FROM dbo.TBL_VND_VBU AS V
INNER JOIN dbo.TBL_VND_VBU_CONTACT AS C
ON V.VND_NBR = C.VND_NBR AND V.CRY_CD = C.CRY_CD
INNER JOIN dbo.TBL_VND_TYPE AS T
ON C.CONTACT_TYPE = T.ID
WHERE V.CRY_CD = 1
Вывод должно быть:
SELECT V.VND_NBR
,VND_NAME
,C.CONTACT_NAME
,C.CONTACT_EMAIL
,T.[NAME] AS CONTACT_TYPE
FROM dbo.TBL_VND_VBU AS V
INNER JOIN dbo.TBL_VND_VBU_CONTACT AS C
ON V.VND_NBR = C.VND_NBR AND V.CRY_CD = C.CRY_CD
INNER JOIN dbo.TBL_VND_TYPE AS T
ON C.CONTACT_TYPE = T.ID
WHERE V.CRY_CD = 1
Что-то мне не хватает, чтобы отформатировать его, как вывод выше? Я много возился, но, похоже, не могу заставить его правильно строить в нужном формате. Любые предложения приветствуются!