use*_*722 4 sql-server clustered-index indexed-view
我正在尝试在下面的查询中创建一个简单的索引视图。但是当我尝试在其上创建唯一的聚集索引时,出现以下错误:
无法在视图“..”上创建聚集索引“..”,因为视图的选择列表包含关于聚合函数或分组列的结果的表达式。考虑从选择列表中删除聚合函数或分组列结果的表达式。
我使用的查询如下:
SELECT
[Manufacturer]
,ISNULL(SUM([QAV]),0) as AvgQAV
,ISNULL(SUM([BackOrders$]),0)as AvgBackorder$
,DATEPART(year,[Date])as Year
,DATEPART(month,[Date])as Month
,[fixSBU]
,[DC Name]
FROM [dbo].[TABLE1]
Group By
[Manufacturer]
,DATEPART(year,[Date])
,DATEPART(month,[Date])
,[fixSBU]
,[DC Name]
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这可能的原因?如您所见,我已经在使用该ISNULL功能。
这是索引视图的所有限制的链接:https : //msdn.microsoft.com/en-us/library/ms191432.aspx#Restrictions
从文档中,这两项应该突出:
此外,您需要更改 ISNULL 语句。现在你有 ISNULL(SUM([BackOrders$]),0) 并且它应该是 SUM(ISNULL([BackOrders$], 0))。您需要对 ISNULL 求和,而不是相反。