首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关键字“if”SQL附近的不正确语法

关键字“if”SQL附近的不正确语法
EN

Stack Overflow用户
提问于 2018-01-29 15:57:19
回答 1查看 2.3K关注 0票数 0

我试图得到result5 =1,如果运营现金流的平均值是<=0,或者前3名的平均运营现金流是<=0。错误消息在关键字'if‘附近显示不正确的语法。

代码语言:javascript
复制
begin
   declare @OperatingCashflow5 int
   declare @OperatingCashflow3 int
   declare @result5 int

   select @OperatingCashflow5 = AVG(hpd.TotalCashFromOperations)
   from HistoricalFinPerformanceDataStagingGlobal hpd
   where hpd.companyid = @companyid

   select @OperatingCashflow3 = AVG(hpd.TotalCashFromOperations)
   from (
     select top (3) hpd.TotalCashFromOperations 
     from   HistoricalFinPerformanceDataStagingGlobal hpd 
     where hpd.companyid = @companyid
   )

   if @OperatingCashflow5 <= 0 OR @OperatingCashflow3 <= 0 
   begin
      select @result5 = 1
   end
   else
   begin
      select @result5 = 0
   end 
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-29 16:05:12

当您花时间格式化代码时,发现问题要容易得多。

在这种情况下,您有一个嵌套SELECT语句,嵌套select必须有一个别名。您所要做的就是在结束括号后添加一个字母(任何字母):

代码语言:javascript
复制
begin
   declare @OperatingCashflow5 int
   declare @OperatingCashflow3 int
   declare @result5 int

   select @OperatingCashflow5 = AVG(hpd.TotalCashFromOperations)
   from HistoricalFinPerformanceDataStagingGlobal hpd
   where hpd.companyid = @companyid

   select @OperatingCashflow3 = AVG(hpd.TotalCashFromOperations)
   from (
     select top (3) hpd.TotalCashFromOperations 
     from   HistoricalFinPerformanceDataStagingGlobal hpd 
     where hpd.companyid = @companyid
   ) hpd -- <<<< Need a name here

   if @OperatingCashflow5 <= 0 OR @OperatingCashflow3 <= 0 
   begin
      select @result5 = 1
   end
   else
   begin
      select @result5 = 0
   end 
end

我怀疑这个特定的select查询还有其他问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48505243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档