質問

私は、次のコードを使用してビューを作成しました。

CREATE VIEW dbo.two_weeks_performance WITH SCHEMABINDING
AS 
  SELECT dbo.day_dim.date_time AS Date, 
         dbo.order_dim.quantity AS Target_Acheived
    FROM dbo.day_dim 
    JOIN dbo.order_fact ON dbo.day_dim.day_id = dbo.order_fact.day_id 
    JOIN dbo.branch_dim ON dbo.order_fact.branch_id = dbo.branch_dim.branch_id 
    JOIN dbo.order_dim ON dbo.order_fact.order_id = dbo.order_dim.order_id   
GROUP BY dbo.order_dim.quantity, dbo.day_dim.date_time` 

今、私が使用している場合:

CREATE UNIQUE CLUSTERED INDEX two_weeks_performance_I ON two_weeks_performance (Date)

私はエラーを取得しています:

  その選択リストにCOUNT_BIG(の正しい使用法を使用していないため、)インデックスを作成することはできません。選択にCOUNT_BIG(*)を追加することを検討してください。

私はこの問題を解決してください。

役に立ちましたか?

解決

エラーがわかりますあなたがしなければならないまさに - 。あなたの選択リストにCOUNT_BIG(*)を追加

インデックス付きビューを作成するから:

  

GROUP BYが指定されている場合は、ビュー   選択リストには含まれている必要があります   COUNT_BIG(*)の発現、およびビュー   定義は、HAVING指定することはできません。   ROLLUP、CUBE、または設定をグループ化する。

CREATE VIEW dbo.two_weeks_performance WITH SCHEMABINDING
AS 
  SELECT dbo.day_dim.date_time AS Date, 
         dbo.order_dim.quantity AS Target_Acheived,
         COUNT_BIG(*) as Cnt 
    FROM dbo.day_dim 
    JOIN dbo.order_fact ON dbo.day_dim.day_id = dbo.order_fact.day_id 
    JOIN dbo.branch_dim ON dbo.order_fact.branch_id = dbo.branch_dim.branch_id 
    JOIN dbo.order_dim ON dbo.order_fact.order_id = dbo.order_dim.order_id   
GROUP BY dbo.order_dim.quantity, dbo.day_dim.date_time
GO
CREATE UNIQUE CLUSTERED INDEX two_weeks_performance_I ON two_weeks_performance (Date)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top