omini data
omini data

Reputation: 417

sql how to filter between 2 values of a result with an alias

so i am trying to filter between -5 and 5 but i get a

invalid column name procent for 10 Tommer

what is the correct way to do this

    select [Dækstørelsen],CAST(CEILING(
    (@omkredsnu-[Omkreds for 10 Tommer])/@omkredsnu*100*100)/100 
    as decimal(18,2)) as "procent for 10 Tommer"
    from [Tabel].[dæk]
   WHERE "procent for 10 Tommer" BETWEEN -5 AND 5,

select [Dækstørelsen],CAST(CEILING(
(@omkredsnu-[Omkreds for 11 Tommer])/@omkredsnu*100*100)/100 
as decimal(18,2)) as "procent for 11 Tommer"
from [Tabel].[dæk]
WHERE "procent for 11 Tommer" BETWEEN -5 AND 5

Upvotes: 1

Views: 37

Answers (2)

Tharunkumar Reddy
Tharunkumar Reddy

Reputation: 2813

You can not use alias name in where clause. So use like below

 SELECT [DÆKSTØRELSEN],CAST(CEILING(
(@OMKREDSNU-[OMKREDS FOR 10 TOMMER])/@OMKREDSNU*100*100)/100 
AS DECIMAL(18,2)) AS "PROCENT FOR 10 TOMMER"
FROM [TABEL].[DÆK]
WHERE CAST(CEILING(
(@OMKREDSNU-[OMKREDS FOR 10 TOMMER])/@OMKREDSNU*100*100)/100 
AS DECIMAL(18,2)) 
 BETWEEN -5 AND 5

Or

 select * from
(select [Dækstørelsen],CAST(CEILING(
(@omkredsnu-[Omkreds for 10 Tommer])/@omkredsnu*100*100)/100 
as decimal(18,2)) as "procent for 10 Tommer"
from [Tabel].[dæk]
)a

where "procent for 10 Tommer"  BETWEEN -5 AND 5

Upvotes: 1

sagi
sagi

Reputation: 40481

You can use a column in the WHERE clause in the same level it is created.

Wrap it with another query :

SELECT * 
FROM (YourQuery Here) t
WHERE t."procent for 10 Tommer" BETWEEN -5 AND 5

Or use the same logic in the WHERE clause

WHERE CAST(CEILING((@omkredsnu-[Omkreds for 10 Tommer])/@omkredsnu*100*100)/100 as decimal(18,2))
      BETWEEN -5 AND 5

Upvotes: 0

Related Questions