SQL Server - Использование псевдонима столбца в подзапросе - PullRequest
0 голосов
/ 07 января 2009

У меня следующий запрос, который отлично работает с MySQL, но отказывается работать с SQL-сервером:

SELECT table1.someField AS theField, 
       COUNT(table2.someField) / (SELECT COUNT(someField) FROM table1 WHERE someField = theField),
FROM table1 LEFT JOIN table2 ON table1.someField = table2.someField

SQL Server, похоже, не нравится псевдоним в подзапросе. Мне сказали, что мне нужно использовать CTE, но я никогда не использовал их раньше. Это правильно?

1 Ответ

3 голосов
/ 07 января 2009

Возможно, проблема в путанице в подзапросе

SELECT COUNT(someField) FROM table1 WHERE someField = theField

someField в условии будет локальным, но вы можете получить table1.someField точно так же.

Как насчет

SELECT COUNT(t3.someField) FROM table1 t3 WHERE t3.someField = table1.someField 

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