4

以下のクエリで単純なインデックス付きビューを作成しようとしています。しかし、一意のクラスター化インデックスを作成しようとすると、次のエラーが発生します。

ビュー '..' にクラスター化インデックス '..' を作成できません。ビューの選択リストに、集計関数またはグループ化列の結果に関する式が含まれているためです。選択リストから集計関数またはグループ化列の結果の式を削除することを検討してください。

私が使用したクエリは次のとおりです。

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]

誰かがこれの考えられる原因を教えてもらえますか? ご覧のとおり、私はすでにISNULL関数を使用しています。

4

4 に答える 4

0

(少なくとも私には)あまり意味がありませんが、参照:https://msdn.microsoft.com/en-us/library/ms191432.aspx

具体的には:

GROUP BY が存在する場合、VIEW 定義には COUNT_BIG(*) を含める必要があり、HAVING を含めることはできません。これらの GROUP BY 制限は、インデックス付きビューの定義にのみ適用されます。クエリは、これらの GROUP BY 制限を満たさない場合でも、実行プランでインデックス付きビューを使用できます。

COUNT_BIG(*)選択リストにa を追加して試してみてください。

于 2015-03-24T01:38:31.060 に答える