Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
5 years ago
Solved

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.

  • Syndicate_Admin's avatar
    Syndicate_Admin
    4 years ago

    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

  • @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's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      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.

  • @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's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      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.