у меня есть следующий SQL:ошибка «Неверное имя столбца» SQL, с внутренним выберите
SELECT A.*,
(SELECT answer FROM [tblAnswers] B
WHERE B.memberID = A.memberID AND QuestionID = 3) AS ethnicity
FROM [tblMembers] A
WHERE
LOWER(gender) = 'm'
AND ethnicity = 'Sephardi'
и я получаю ошибку Invalid column name 'ethnicity'
со ссылкой на последней ссылки на эту колонку.
Вопрос: Почему эта колонка недоступна для предложения WHERE
?
Я знаю, что если я делаю следующее, это работает:
SELECT A.*,
(SELECT answer FROM [tblAnswers] B WHERE B.memberID = A.memberID AND QuestionID = 3) AS ethnicity
FROM [tblMembers] A
WHERE
LOWER(gender) = 'm'
AND convert(nvarchar, (SELECT answer FROM [tblAnswers] B WHERE B.memberID = A.memberID AND QuestionID = 3)) = 'Sephardi'
Вы не можете, это ограничение SQL-сервера: http://stackoverflow.com/questions/16161938/how-to-use -alias-column-name-in-where-clause-in-sqlserver –
вы можете использовать cte –
Я вижу небольшую причину _not_, чтобы использовать простое соединение. Это также решит вашу проблему. – oerkelens