我正在尝试将我的结果从profilhøjde传递给计算进行,然后显示id([Dækstørelsen]
)并过滤它但我得到了
[Dækstørelsen]和“10 Tommer的诉讼”无效的列名
我该怎么做?
/******calculation for profilhøjde******/
select
("profilhøjde" *2 + @diameter10)*PI() as "diameter 10 tommer"
from
(select ([brede]*[Profil])/100 as "profilhøjde"
from [Tabel].[dæk]
)a
/******calculation for procent******/
select
[Dækstørelsen],CAST(CEILING(
(@omkredsnu-"diameter 10 tommer")/@omkredsnu*100*100)/100
as decimal(18,2)) as "procent for 10 Tommer"
from
(select ("profilhøjde" *2 + @diameter10)*PI() as "diameter 10 tommer"
from [Tabel].[dæk]
)b
where "procent for 10 Tommer" BETWEEN @negativværdi AND @maxafvigelsværdi
SET @negativværdi = Concat('-', @maxafvigelsværdi);
我之前使用过这个
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 @negativværdi AND @maxafvigelsværdi
答案 0 :(得分:1)
错误消息的原因是
[Dækstørelsen]
不是子选择中的列,而是表[Tabel].[dæk]
"procent for 10 Tommer"
是select中的别名,因此不允许在where子句中使用
要修复第一个错误,您必须在子选择中包含该列,例如
select [Dækstørelsen],
("profilhøjde" * 2 + @diameter10) * PI() as "diameter 10 tommer"
from (select [Dækstørelsen], ([brede] * [Profil]) / 100 as "profilhøjde"
from [Tabel].[dæk]) a
答案 1 :(得分:0)
如果删除别名
,这应该有效 select
("profilhøjde" *2 + @diameter10)*PI() as "diameter 10 tommer"
from
(select ([brede]*[Profil])/100 as "profilhøjde"
from [Tabel].[dæk]
)a
/******calculation for procent******/
select
[Dækstørelsen],CAST(CEILING(
(@omkredsnu-"diameter 10 tommer")/@omkredsnu*100*100)/100
as decimal(18,2)) as "procent for 10 Tommer"
from
(select ("profilhøjde" *2 + @diameter10)*PI() as "diameter 10 tommer"
from [Tabel].[dæk]
)b
where CAST(CEILING(
(@omkredsnu-"diameter 10 tommer")/@omkredsnu*100*100)/100
as decimal(18,2)) BETWEEN @negativværdi AND @maxafvigelsværdi
SET @negativværdi = Concat('-', @maxafvigelsværdi);