2013-04-16 1 views
0

Я задавался вопросом, если вы можете ссылаться на что-то, где положение как:Ссылка что-то в выбранном пункте SQL

select 
sum([some calculation]) as x, 
sum([some other calculation]) as y, 
x/y as z 
from 
[rest of the sql...] 

Большое спасибо

K

+0

Если вы имеете в виду, что предложение WHERE должно получить результаты x, y и z, тогда ответ будет отрицательным. Они могут быть доступны в предложении 'HAVING', хотя это выполняется по результатам запроса до его возврата. По сути, он менее эффективен и поэтому должен использоваться только в том случае, если нет лучшего решения. – Michael

ответ

1

Нет, вы не можете использовал псевдоним, был сгенерирован на том же уровне в операторе SELECT.

Вот возможные способы достижения.

Используя оригинальную формулу:

select sum([some calculation]) as x, 
     sum([some other calculation]) as y, 
     sum([some calculation])/sum([some other calculation]) as z 
from tableName 

или с помощью подзапроса:

SELECT x, 
     y, 
     x/y z 
FROM 
(
    select sum([some calculation]) as x, 
      sum([some other calculation]) as y 
    from tableName 
) s 
+0

Спасибо. Это позор ... Я надеялся, что смогу сделать это ленивым путем –

+0

хе-хе, просто выберите лучший, который подходит для вас ': D' –

1

SQL-стандарт не поддерживает это. Вы должны написать:

select 
sum([some calculation]) as x, 
sum([some other calculation]) as y, 
sum([some calculation])/sum([some other calculation]) as z 
from 
[rest of the sql...] 

Там могут быть некоторые РСУБД, которые поддерживают ваш синтаксис.

+0

нет поддержки':) ' –