Я получаю сообщение Недопустимая операция с плавающей запятой с этим кодом. Это говорит мне, что проблема в том месте, где начинается 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