Frage

Ich habe eine Ansicht mit dem folgenden Code erstellt

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` 

Nun, wenn ich benutze:

CREATE UNIQUE CLUSTERED INDEX two_weeks_performance_I ON two_weeks_performance (Date)

Ich erhalte eine Fehlermeldung:

  

kann nicht erstellt werden, weil Index seine Auswahlliste verwenden, nicht die korrekte Verwendung von COUNT_BIG (). Erwägen Sie COUNT_BIG (*) an die Auswahl.

Bitte helfen Sie mir, dieses Problem zu lösen.

War es hilfreich?

Lösung

Der Fehler sagt Ihnen genau, was Sie tun müssen, -. Fügen COUNT_BIG (*), um Ihre Auswahlliste

Erstellen indizierter Sichten :

  

Wenn GROUP BY angegeben ist, die Ansicht   Auswahlliste muss enthalten   COUNT_BIG (*) expression, und der Blick   Definition kann nicht angeben zu müssen,   ROLLUP, CUBE oder GROUPING SETS.

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top