Question

I was wondering if you can reference something in the where clause like:

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

Many Thanks

K

Était-ce utile?

La solution

No, you cannot used the alias that was generated on the same level on the SELECT statement.

Here are the possible ways to accomplish.

Using the original formula:

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

or by using subquery:

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

Autres conseils

The SQL standard does not support this. You have to write:

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...]

There may be some RDBMS out there that support your syntax, though.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top