CTE无效的浮点运算

时间:2013-12-03 23:40:22

标签: sql sql-server

我收到此代码发生了无效的浮点运算错误。 它告诉我问题是CTE开始的问题。 如果我没有SQRT功能,那么一切正常,但只要我添加SQRT,我就会收到错误。

我想做的是通过平方数来摆脱负面。

declare @start_date date, @end_date date
set @start_date = '2012/01/01' 
set @end_date = '2012/12/31';
with tbl1
as
(

    select 
        strata, 
        entranceID,
        sum(count)/count(*) as AverageCount
    from 
        train
    where 
        surveydate between '2012/01/01' and '2012/12/31'
    group by 
        strata, 
        entranceID
)
select 
    a.jobnumber,
    a.strata,
    a.EntranceID,
    Count,
    b.AverageCount,
    count - AverageCount
    , CASE WHEN AverageCount = 0 then 0
        ELSE SQRT(count - AverageCount)
        END as A

1 个答案:

答案 0 :(得分:0)

在表达式中:

SQRT(count - AverageCount)

count的值必须是> = AverageCount。

对于您的测试数据可能不是这样。

考虑使用:

SQRT (ABS(count - AverageCount))

相反,如果在你的情况下这是有道理的。