Я пытаюсь выполнить SQL-запрос через связанный SSAS-сервер. Исходный запрос работает нормально:
SELECT "Ugly OLAP name" as "Value"
FROM OpenQuery( OLAP, 'OLAP Query')
Но если я попытаюсь добавить:
WHERE "Value" > 0
Я получаю сообщение об ошибке
Недопустимое имя столбца "Значение"
Любые идеи, что я могу делать неправильно?
Таким образом, проблема заключалась в том, что порядок, в котором обрабатываются элементы запроса, отличается от порядка их написания. Согласно этому источнику:
http://blogs.x2line.com/al/archive/2007/06/30/3187.aspx
Порядок оценки в MSSQL:
- С
- ON
- JOIN
- WHERE
- GROUP BY
- HAVING
- SELECT
- ЗАКАЗАТЬ
Таким образом, псевдоним не обрабатывался до тех пор, пока не будут предложены предложения WHERE и HAVING.