Forum Discussion
Error al usar Power Query para restringir datos
Hola a todos,
Tengo una tabla grande que consta de más de 10 millones de filas de datos.
Para cargar los datos en PBI, utilizamos la consulta nativa para restringir la base en los últimos 2 meses, y actualizamos el calmonth manualmente cada vez que llegamos a un nuevo mes. La consulta tiene un aspecto similar al siguiente:
Seleccione * de la tabla donde se encuentra la calma en (<calmonth1>,<calmonth2>
Recientemente, mi colega aplica una fórmula de consulta de energía (debido a un error recurrente con la consulta nativa que es molesto). La fórmula se ve a continuación:
#"Filas filtradas" = Table.SelectRows(Table, cada una ([calmonth] = List.Max(Table[calmonth]) o [field] = List.Max(Table[calmonth])-1))
en
#"Filas filtradas"
Funciona bien con todo el equipo menos conmigo. Tengo el siguiente error en su lugar y no sé cómo solucionarlo. ¿Alguien puede ayudar, por favor?
Error OLE DB u ODBC: [DataSource.Error] ODBC: ERROR [42000] [Cloudera][ImpalaODBC] (360) Error de sintaxis ocurrido durante la ejecución de la consulta: [HY000] : AnalysisException: Error de sintaxis en la línea 303: donde { fn convert('calmonth... ^ Encontrado: Carácter inesperado Esperado: CASE, CAST, DEFAULT, EXISTS, FALSE, IF, INTERVAL, LEFT, NOT, NULL, REPLACE, RIGHT, TRUNCATE, TRUE, IDENTIFIER CAUSED BY: Exception: Syntax error .
Gracias.
Hola @v-janeyg-msft,
Funciona ahora. El error se refiere al campo calmonth que es numérico y no hay un valor nulo para ese campo, por lo que es extraño cuando se refiere a dicho error.
Lo que hice fue usar la versión de agosto (porque la última versión tiene un error y no puedo actualizar). Luego selecciono el campo y elijo 'mantener errores'. Generará un nuevo paso.
#"Filas filtradas" = Table.SelectRows(Table,
cada uno ([calmonth] = List.Max(Table[calmonth]) o [calmonth] = List.Max(Table[calmonth])-1)),
#"Errores guardados" = Table.SelectRowsWithErrors(#"Filas filtradas")
en
#"Errores guardados"Luego 'aplico' y se actualizó. La primera actualización fue exitosa, pero la tabla estaba vacía, así que lo intenté varias veces hasta que se pobló.
Después de eso, eliminé la opción 'mantener errores' y la actualicé nuevamente. Parece que funciona bien ahora.
5 Replies
- Syndicate_Admin
Administrator
@Mimi_Ibrahim , Ya sea que esté obteniendo un valor nulo como máximo o que esté obteniendo un valor no numérico para calmonth, verifique que
- Syndicate_Admin
Administrator
Gracias @amitchandak. He comprobado que el formato para el calmonth es numérico en Cloudera y es el mismo en 'Transform Data'. No hice ningún cambio en el tipo de campo, los datos solo se cargan directamente desde la tabla de origen y falló con el error mencionado.
Es curioso que solo yo esté teniendo el error, no mis otros colegas. ¿Hay alguna configuración que deba cambiar en mi escritorio PBI? Actualmente estoy usando la versión de agosto de PBI. Aprecia si pudieras aconsejarte, gracias.
- Syndicate_Admin
Administrator
Allí, @Mimi_Ibrahim
El código se ve normal, puede intentar actualizar a la última versión.
Download Microsoft Power BI Desktop from Official Microsoft Download Center
¿Respondí a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no, por favor siéntase libre de preguntarme.
SaludosEquipo de apoyo a la comunidad _ Janey
- Syndicate_Admin
Administrator
@Mimi_Ibrahim ¿Alguna actualización?
¿Respondí a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si el problema persiste, por favor hágamelo saber.Saludos
Equipo de apoyo a la comunidad _ Janey
- Syndicate_Admin
Administrator
Hola @v-janeyg-msft,
Funciona ahora. El error se refiere al campo calmonth que es numérico y no hay un valor nulo para ese campo, por lo que es extraño cuando se refiere a dicho error.
Lo que hice fue usar la versión de agosto (porque la última versión tiene un error y no puedo actualizar). Luego selecciono el campo y elijo 'mantener errores'. Generará un nuevo paso.
#"Filas filtradas" = Table.SelectRows(Table,
cada uno ([calmonth] = List.Max(Table[calmonth]) o [calmonth] = List.Max(Table[calmonth])-1)),
#"Errores guardados" = Table.SelectRowsWithErrors(#"Filas filtradas")
en
#"Errores guardados"Luego 'aplico' y se actualizó. La primera actualización fue exitosa, pero la tabla estaba vacía, así que lo intenté varias veces hasta que se pobló.
Después de eso, eliminé la opción 'mantener errores' y la actualicé nuevamente. Parece que funciona bien ahora.