Consulta con CTE da error

Un usuario Pregunto ✅

migueljc70

Usé SQL Server y una consulta que usa un CTE. Me da un error «Sintaxis incorrecta cerca de la palabra clave ‘CON’. …….»si esta es una expresión de tabla común…la instrucción anterior debe terminar con un punto y coma».

La consulta funciona bien fuera de Power BI. Intenté poner un punto y coma antes de ‘CON’, pero no funcionó. Veo los datos en la cuadrícula, pero no puedo aplicar los cambios de consulta y obtengo el error

perry200

Estoy de acuerdo con el cartel. También encontré el problema con CTE en la etapa final de «Aplicar» de Power Query. Y pasé un montón de tiempo investigando cuál es el caso y finalmente tuve la oportunidad de leer esta publicación, que realmente no tiene sentido para mí que funcione en la sección de vista previa de PowerQuery pero no funcione en la sección de aplicación final…

Sí, definitivamente podríamos reescribir la consulta sin usar CTE, pero solo como una perspectiva de usuario, esto simplemente no tiene sentido y definitivamente creo que es la limitación de la compilación de SQL en PowerBI

Rowlandshaw

El detalle que agregaría aquí es que la vista previa de la consulta funciona, es al evaluar la consulta que falla

migueljc70

Una cosa más… aunque puedo ver mis datos en «Editar consultas», no puedo crear una visualización porque la consulta no aparece en «Campos».

sentido austin

En respuesta a migueljc70

¿Está accediendo a una vista que usa un CTE o escribió una consulta SQL que usa un CTE?

Si es lo último, sugeriría crear una vista y luego consultar la vista.

migueljc70

En respuesta a sentido austin

Escribí una consulta que usa un CTE. No tengo permisos para crear una vista o un procedimiento almacenado.

sentido austin

En respuesta a migueljc70

Gotcha, no se recomienda poner una consulta sql personalizada en el generador de consultas, como puede ver carita feliz

Aquí están tus opciones…

1. Cree una vista: parece que esta no es una opción para usted

2. Vuelva a escribir la consulta sin usar un CTE; eso sería una buena prueba de sus habilidades de SQL

3. Deje de usar el código sql personalizado, consulte las tablas subyacentes usando la GUI y use PQ para crear el resultado que desea; esa sería una buena prueba de sus habilidades de PQ.

migueljc70

En respuesta a sentido austin

No estoy seguro de por qué no se recomienda. No veo la documentación que dice eso y no veo una lista de limitaciones de consulta.

Estoy evaluando Power BI para determinar si mi organización quiere comprarlo y usarlo como herramienta de visualización. No estoy tratando de «probar mis habilidades». Estoy tratando de evaluar productos para ver cómo funcionan (o si funcionan en este caso).

No puedo importar las tablas y unirlas porque son demasiado grandes. No puedo usar Direct Query porque no admite muchas relaciones. Todo lo que veo son muchas limitaciones.

Se supone que Power BI es de autoservicio. Eso generalmente significa no escribir vistas o procedimientos almacenados (y generalmente no CTE) y si hay una característica, espero que funcione.

rbb

En respuesta a migueljc70

su problema y sus pensamientos al respecto son exactamente lo que estoy enfrentando hoy. Sería bueno si simplemente pasara por la consulta y usara los resultados como lo hace en la vista previa. Mi consulta también funciona bien en PowerPivot con un CTE recursivo y solo lo estaba probando en Power BI, pero no se acepta el mismo código en Power BI. salud

Jim Luo

En respuesta a rbb

Tengo el mismo problema con CTE. Será muy conveniente apoyar CTE. Utilizo una solución alternativa para guardar datos en Excel e importarlos.

Mandr0id

En respuesta a Jim Luo

Mismo problema con CTE… ¿Alguien lo hizo funcionar?

geoffwill

En respuesta a Mandr0id

Teniendo el mismo problema con CTE, sin embargo, pude volver a escribir para usar una subconsulta y funciona

Elegante

En respuesta a geoffwill

Es una pena. También tengo este problema. Eliminé el CTE pero el código es mucho menos legible/mantenible. Ho hum.

jim jao

En respuesta a Elegante

Hola a todos,

Con Power BI Desktop (octubre de 2017), pude usar la consulta CTE con una conexión OLE DB a SQL Server.

Entonces, Power BI es compatible con CTE.

jim jao

MasterCMU

En respuesta a jim jao

Sí, esto sigue siendo correcto en Power BI Desktop de noviembre de 2019; se confirmó que funciona SOLAMENTE a través de una conexión OLE DB a SQL en lugar de a través de la conexión SQL en Power BI. Encontré el problema con CTE en la etapa final de «Aplicar» de Power Query con una conexión directa y mientras la vista previa estaba funcionando, Aplicar y Cerrar fallaba con el mismo mensaje que los OP. Usando la solución de JimJao con Ole DB, lo conseguí para Aplicar y Actualizar. Entonces parece ser un error en el conector SQL.

Anónimo

En respuesta a jim jao

¿Usaste Importar o Consulta Directa?

Gracias

B

rosalilly23

En respuesta a Anónimo

Estaba teniendo el problema al usar Direct Query con sql personalizado que contenía CTE. Acabo de volver a escribir la consulta para tener subconsultas en lugar de CTE y ahora funciona bien.

jim jao

En respuesta a Elegante

Hola a todos,

Con Power BI Desktop (octubre de 2017), pude usar la consulta CTE junto con una conexión OLE DB a SQL Server.

Esto ya no es verdad.

jim jao

sentido austin

En respuesta a migueljc70

Para su información, la mayoría de las personas comienzan estas conversaciones con «gracias por intentar ayudarme…»

Escribir una consulta SQL personalizada generalmente funciona bien; solo se recomienda que no lo haga de esa manera, que cree una vista. En ese sentido, el BI de autoservicio no significa que las personas vayan a escribir consultas SQL con CTE para acceder a los datos, por lo que no veo que no pueda hacer eso en la herramienta como una limitación importante para el BI de autoservicio. . La única limitación que tiene aquí es que necesita una vista creada en su base de datos, y eso no es una limitación de este producto.

Para sortear la limitación de crear una vista, esta solución le permite (como una herramienta de autoservicio) sacar las tablas de su base de datos y unirlas usted mismo utilizando la GUI del editor de consultas. Sus datos deben ser muy, muy grandes si no puede hacer que funcionen en Power BI, y si sus datos son tan grandes, le preguntaré nuevamente, ¿por qué no está haciendo eso en una vista en su base de datos? Si tienes un clavo que necesitas poner en una pared y buscas en tu bolso y sacas un destornillador, bueno, no creo que sea culpa del destornillador.

Un último punto, me doy cuenta de que no está tratando de «probar sus habilidades», pero diré que este producto no es polvo mágico de BI; requiere algunas habilidades para usarlo. Si usted es el tipo de persona que puede escribir una consulta SQL con un CTE, entonces podrá resolverlo. A menos que no quieras averiguarlo.

migueljc70

En respuesta a sentido austin

Agradezco cualquier ayuda. Solo esperaba una respuesta sobre por qué no funciona en lugar de cómo solucionarlo. Si hay limitaciones en las consultas en Power BI, Microsoft debería documentarlo.

Esto se usaría con un almacén de datos, por lo que las tablas suelen tener millones de filas.

Como desarrollador, por supuesto que puedo escribir consultas (o vistas o procedimientos almacenados), pero la gerencia realmente no entiende cómo funciona todo esto y piensa que cualquiera puede obtener una herramienta y arrastrar tablas y campos y obtener informes y visualizaciones. Ven una demostración de 2 horas y piensan que es muy fácil (que lo es si conoce la herramienta y ha cultivado datos). Como mínimo, creo que a menos que su conjunto de datos sea pequeño y/o cultivado cuidadosamente, TI (o personas técnicas de negocios) necesita crear vistas, cubos o consultas.

Entiendo completamente que eso no es una limitación de Power BI estrictamente, sino una limitación de autoservicio que tienen todas estas herramientas.

Voy a comunicarle todo esto a mi cliente, y si no lo acepta, sugiero que haga que varios redactores de informes potenciales intenten crear informes con el almacén de datos tal como está.

sentido austin

En respuesta a migueljc70

Ok, genial, estamos en la misma página. carita feliz

Creamos y trabajamos con modelos con bastante regularidad que tienen más de 10 millones de filas, por lo que tengo curiosidad por saber qué problemas tiene: ¿Power BI arroja algún tipo de error cuando intenta traer sus datos? Alguien de esta comunidad definitivamente podría ayudarlo a resolver este problema.

Deja un comentario

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