Cómo DirectQuery View con consulta recursiva CTE

Un usuario Pregunto ✅

timbre

Hola a todos,

¡Gracias por echar un vistazo a la pregunta!

Tengo una Vista que contiene un CTE recursivo para generar fechas entre una fecha de inicio y finalización determinada.

WITH D AS (
	SELECT CAST(DATEADD(month, DATEDIFF(month, 0, DATEADD(m, 0 - 12, GETUTCDATE())), 0) AS DATETIME) as DayDate
	UNION ALL
	SELECT DATEADD(day, 1, DayDate)
	FROM D
	WHERE DayDate < CAST(DATEADD(month, DATEDIFF(month, 0, GETUTCDATE()), 0) AS DATETIME)
)

Hay algún otro código SQL que se une a ese CTE.

Por lo general, al ejecutar esta consulta incluiría

OPTION (MAXRECURSION 0)

al final de la consulta, si no lo hace, SQL Server generará un error.

Estoy transfiriendo esta consulta a Power BI, pero no puedo encontrar una manera de restringir la opción MAXRECURSION como lo haría en una instrucción SQL estándar.

No puedo incluir esto en la Vista porque generará un error (al igual que un Pedido por)

No puedo ver una forma de editar la consulta una vez que he creado un conjunto de datos de SQL Server consultando la vista

Cuando navego a través de ‘Obtener datos’ -> SQL Server -> Opciones avanzadas (DirectQuery marcado), luego ingrese una consulta como

SELECT * FROM MyView OPTION(MAXRECURSION 0)

La consulta se ejecuta y ve un conjunto de resultados, pero luego, cuando hago clic en Cargar para crear el conjunto de datos, aparece un error que dice: «Microsoft SQL: sintaxis incorrecta cerca de la palabra clave ‘OPCIÓN'».

¿Alguna idea sobre cuáles son mis opciones aquí y si hay una mejor práctica para este tipo de consulta?

Gracias de antemano y un cordial saludo,

Robar

@bellr,

Puede consultar la publicación a continuación que hace uso de OPENROWSET.

https://community.powerbi.com/t5/Desktop/Calling-SQL-stored-procedure-with-Direct-Query/td-p/224831

@bellr,

Puede consultar la publicación a continuación que hace uso de OPENROWSET.

https://community.powerbi.com/t5/Desktop/Calling-SQL-stored-procedure-with-Direct-Query/td-p/224831

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *