我正在尝试创建一个过程,在该过程中,声明了已初始化的变量并创建了计算列,其平均值将变量@ efinal1和@ efinal2作为范围
Outputs:
LambdaRole:
Value:
Fn::GetAtt:
- "LambdaFunctionRole"
- "Arn"
Description: "Lambda IAM Role"
我期望输出@ efinal1和@ efinal2作为范围
答案 0 :(得分:1)
您不能在select
子句的where
子句中使用别名。
您需要使用派生表或公共表表达式。 (在这种情况下,唯一的区别是可读性):
create proc sppromediorango
@efinal1 int=0,--min value
@efinal2 int=10--max value
as
begin
select averagescore
from
(
select ([ScoreEParcial]*0.4+[ScoreEFinal]*0.6)as averagescore
from [dbo].[tbAlumnos] a
inner join [dbo].[tbScore] c
on (a.aluID=c.ScoreAluID)
) As derived
where averagescore between @efinal1 and @efinal2
end
go