有什么方法可以使计算列具有2个参数作为范围?

时间:2019-05-25 04:37:37

标签: tsql stored-procedures sql-server-2014 calculated-columns

我正在尝试创建一个过程,在该过程中,声明了已初始化的变量并创建了计算列,其平均值将变量@ efinal1和@ efinal2作为范围

Outputs:
  LambdaRole:
    Value: 
      Fn::GetAtt: 
        - "LambdaFunctionRole"
        - "Arn"
    Description: "Lambda IAM Role"

我期望输出@ efinal1和@ efinal2作为范围

1 个答案:

答案 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