Pregunta

He creado una vista usando el siguiente código

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` 

Ahora cuando uso:

CREATE UNIQUE CLUSTERED INDEX two_weeks_performance_I ON two_weeks_performance (Date)

Estoy consiguiendo un error:

  

No se puede crear el índice, ya que su lista de selección no utiliza el uso correcto de COUNT_BIG (). Considerar la adición de COUNT_BIG (*) a la selección.

Por favor me ayude a resolver este problema.

¿Fue útil?

Solución

El error que dice exactamente lo que tiene que hacer -. Añadir COUNT_BIG (*) a su lista de selección

Crear vistas indizadas :

  

Si se especifica GROUP BY, la vista   lista de selección debe contener una   COUNT_BIG (*) expresión, y la vista   definición, no puede especificar HAVING,   ROLLUP, CUBE, o conjuntos de agrupación.

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)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top