如何将NULLIF与聚合函数一起使用

时间:2019-11-04 11:59:59

标签: sql sql-server-2012 ssms nullif

我正在使用SQL Management Studio2012。我遇到“遇到零除错误”错误。我知道这需要使用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%]

1 个答案:

答案 0 :(得分:1)

使用const来标识先前的0

Case Expression