2016-11-17 32 views
1

,所以我想篩選-5和5之間 但我得到一個SQL如何使用別名結果的2個值之間的過濾

無效的列名procent 10 Tommer

是什麼做到這一點

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 

回答

1

不能在使用別名where子句。因此,使用如下

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 

或者

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 
+0

真棒這工作就像一個魅力 –

0

您可以在創建它的同級WHERE子句中使用的列的正確方法。

與另一個查詢包裹它:

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

還是WHERE子句中使用相同的邏輯

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