Я использую SQL Management Studio 2012. Я получаю сообщение об ошибке «Разделение на ноль». Я знаю, что для этого требуется использование NULLIF, но я не уверен, как использовать его в своем запросе.
это мой запрос
select
Ward,
LocalAuthority,
Fiscal,
DR,
cast(DR*100.0 /SUM(DR) OVER (
partition by localauthority, fiscal
order by fiscal asc) as Decimal (10,2)) as [DR%]
from (
select
Fiscal,
LocalAuthority,
Ward,
sum(case when code = 'DR' then 1 else 0 end) as DR
from [dbo].[Table]
where datetimeofcall >= '2014-04-01'
group by
ward,
localauthority,f
fiscal
) as A
На самом деле я задавал этот вопрос, на который какой-то добрый человек ответил отлично, но это было без агрегатной функции OVER() и SUM, я путаюсь с синтаксисом. Я безуспешно пробовал различные коннотации ниже.
cast(DR*100.0 /NULLIF(SUM(DR,0),1) OVER(partition by localauthority,fiscal order by fiscal asc) as Decimal (10,2)) as [DR%]