2

SELECT ステートメントで式を使用して、インデックス付きビューを作成しようとしています。インデックス付きビューの MDSN ガイドラインによると、決定論的である場合は式を使用できます。残念ながら、以下にスクリプト化されたビューに対して一意のクラスター化インデックスを作成しようとすると、以下に示すエラー メッセージが表示されます。式を実行している列は整数データ型に変換されているため、精度の問題もありません。この式が機能しない理由は何ですか?

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

ALTER VIEW [dbo].[Table2]
    WITH SCHEMABINDING
AS
SELECT [Manufacturer]
    ,SUM([QAV]) / COUNT_BIG(*) AS AvgQAV
    ,SUM([BackOrders$]) / COUNT_BIG(*) AS AvgBackorder$
    ,DATEPART(year, [Date]) AS Year
    ,DATEPART(month, [Date]) AS Month
    ,[fixSBU]
    ,[DC Name]
    ,COUNT_BIG(*) AS NumRows
FROM [dbo].[Copy_IOPS2]
GROUP BY [Manufacturer]
    ,DATEPART(year, [Date])
    ,DATEPART(month, [Date])
    ,[fixSBU]
    ,[DC Name]

ありがとう!

4

2 に答える 2

0

これを試して 、

ALTER VIEW [dbo].[Table2] WITH SCHEMABINDING AS
SELECT [Manufacturer] ,
       SUM([QAV]),
       COUNT_BIG(*),
       SUM([BackOrders$]),
       COUNT_BIG(*) AS AvgBackorder$ ,DATEPART(YEAR, [Date]) AS YEAR ,
                                      DATEPART(MONTH, [Date]) AS MONTH ,
                                      [fixSBU] ,
                                      [DC Name] ,
                                      COUNT_BIG(*) AS NumRows
FROM [dbo].[Copy_IOPS2]
GROUP BY [Manufacturer] ,
         DATEPART(YEAR, [Date]) ,
         DATEPART(MONTH, [Date]) ,
         [fixSBU] ,
         [DC Name]
SELECT [Manufacturer] , SUM([QAV]) / COUNT_BIG(*) AS AvgQAV,
       SUM([BackOrders$]) / COUNT_BIG(*) AS AvgBackorder$, ,DATEPART(YEAR, [Date]) AS YEAR,
                                                            DATEPART(MONTH, [Date]) AS MONTH,
                                                            [fixSBU],
                                                            [DC Name] ,
                                                            COUNT_BIG(*) AS NumRows
于 2015-03-24T14:10:37.307 に答える