【发布时间】:2016-07-22 11:27:29
【问题描述】:
我有意见:
create view AA(
select
ba.[FYear],right(ba.[FPeriodId],2) Month,am.[L1],am.L2,ba.[SS],ba.[SM],
sum(ba.[TSB]) OVER (PARTITION BY right(ba.[FPeriodId],2),ba.[SS]) as 'X',
ba.[TSB]/sum(ba.[TSB]) OVER (PARTITION BY right(ba.[FPeriodId],2),ba.[SS]) as 'Y'
from [table1] ba left join [b1_map] am on ba.[SS1] = am.[SS1])
我想避免被零除,所以我使用 ISNULL:isnull(ba.[TSB]/sum(ba.[TSB]))。
现在当我运行查询时:select * from AA 我收到消息:
"函数 'ISNULL' 不是有效的窗口函数,不能与 OVER 子句一起使用。"
我该如何解决这个问题?
【问题讨论】:
标签: sql sql-server-2008 window-functions divide divide-by-zero