Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola: ¡Buen día! Estoy desarrollando un panel para mostrar diferentes eventos de mantenimiento. Tengo un origen de datos [una tabla Db], donde la información de eventos se almacena durante los últimos años. Estoy tratando de filtrar los datos con la fecha de inicio como principio de este año. Hasta ahora tengo mi configuración de origen de datos con la consulta sql como se muestra a continuación.
Muchas gracias de antemano. 🙂
Solved! Go to Solution.
Lamento que esto esté tomando tantas interaciones. Miré hacia atrás en su publicación original y ver que la fecha tiene comillas simples alrededor de la fecha, por lo que esos deben agregarse a la fecha concatenada en la instrucción SQL. Puede hacerlo en la consulta principal, o puede hacerlo en la consulta datefilter de esta manera
•'" & Date.ToText(Date.AddMonths(Date.From(DateTime.LocalNow()), -6), "aaaa-MM-dd") & "'"
Cruzaré los dedos que esta vez es el que funciona.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
@sohananahid , consulte si esto puede ayudar a
https://community.powerbi.com/t5/Desktop/Power-Query-Dynamic-Date/td-p/348222
Puede realizar otra consulta que simplemente devuelve hoy menos seis meses con esta expresión (haga una consulta en blanco y coloque esta fórmula en la barra de fórmulas para el paso Origen.
• Date.AddMonths(Date.From(DateTime.LocalNow()), -6)
Si llama a esa consulta "datefilter", puede usarla en la consulta principal concatentaándola en la cadena SQL. Busque en el editor avanzado su consulta principal y reemplace la fecha codificada de forma rígida por "datefilter". Su SQL original estará entre comillas, por lo que tendrá que concatenarlo de esta manera
"... DONDE startdate >" & datefilter & "... resto del SQL si corresponde"
Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat : Muchas gracias por su respuesta. Seguí tus pasos, pero obteniendo este error:
¡Probablemente me estoy perdiendo algo! Realmente agradecería que me apuntara a la dirección correcta. 🙂
Debe realizar la edición en el Editor avanzado, no en las Opciones avanzadas de la ventana emergente Conexión SQL. En el editor de consultas, en la pestaña de inicio, haga clic en Editor avanzado. Verá la instrucción SQL en el paso Origen de la consulta. Es allí que necesita concatenar la consulta datefilter.
Si te quedas atascado, simplemente copia/pega el texto desde el Editor Avanzado, y puedo responder con código modificado.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat : Gracias por su respuesta. Intenté editar la consulta en Advance Editor, pero aún así recibí un error como PFB:
El código para el origen es tan
Origen: Sql.Database("...", "...", [Query-"select * de dbname.natgas.pipeline_maintenance_events-(lf)where startDate >-" & datefilter & ""])
Gracias de antemano.
¿Puede mostrar el SQL original para ver en qué formato estaba la fecha? ¿La consulta datefilter tendrá que devolverla en ese formato? Es probablemente AAAA-MM-DD, por lo que necesitará esto en datefilter en su lugar
• DateTime.ToText(Date.AddMonths(DateTime.LocalNow(), -6), "yyyy-mm-dd")
Además, si la fecha es la última, no necesitas el &""
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat : Gracias por su respuesta. La fecha está en formato AAAA-MM-DD, la fecha correcta de la consulta devuelta.
Pero a medida que escribo la cadena sql de origen como se muestra a continuación, obtengo un error:
Origen: Sql.Database("XYZ", "ABC", [Consulta"select * de ABC.natgas.pipeline_maintenance_events(lf)where startDate >-" & datefilter ""])
¿Qué me estoy perdiendo? Gracias de antemano.
Deshazte del "" al final.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat Muchas gracias por sus continuas respuestas. Estoy recibiendo este mensaje ahora.
A medida que intento ejecutar la consulta, se atascó un poco al mostrar los mensajes. Cualquier ayuda es muy apreciada.
Parece que estás progresando. Puedes darle a Run en eso. Es sólo un tipo de "¿Estás seguro?" tipo de prontitud. Puede desactivarlos en la configuración.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat Gracias por su paciencia con ayudarme! 🙂
La fecha está apagada, eso es correcto. Además, obtengo un error mientras intento aplicar los cambios de consulta
Estos se encuentran en power Query Editor:
¿Tengo que dar más paso? Gracias.
Creo que el formato de fecha está devolviendo el minuto en lugar del mes. Por favor, utilice este en su lugar. Importa que el MM esté en mayúsculas. Por favor, confirme que devuelve la fecha hace seis meses, e inténtelo de nuevo.
• Date.ToText(Date.AddMonths(Date.From(DateTime.LocalNow()), -6), "yyyy-MM-dd")
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat: Gracias por su respuesta.
La fecha se ve bien ahora.
Pero a medida que intento ejecutar el origen de datos editado y "Ejecutar" como consulta nativa, estoy recibiendo el error:
Muy apreciado de antemano. 🙂
Lamento que esto esté tomando tantas interaciones. Miré hacia atrás en su publicación original y ver que la fecha tiene comillas simples alrededor de la fecha, por lo que esos deben agregarse a la fecha concatenada en la instrucción SQL. Puede hacerlo en la consulta principal, o puede hacerlo en la consulta datefilter de esta manera
•'" & Date.ToText(Date.AddMonths(Date.From(DateTime.LocalNow()), -6), "aaaa-MM-dd") & "'"
Cruzaré los dedos que esta vez es el que funciona.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat ¡Funcionó esta vez! Muchas gracias por su ayuda, realmente lo agradezco! 🙂
Hola @mahoneypat : ¡Buenos días! Tengo 1 pregunta relacionada con este hilo. A medida que de establece una consulta 'datefilter' para obtener eventos con la fecha de inicio > último 1 mes como
•'" & Date.ToText(Date.AddMonths(Date.From(DateTime.LocalNow()), -1), "aaaa-MM-dd") & "'"
Y
... donde startDate >" &datefilter
Funciona y devuelve 380 filas [eventos] con las fechas de inicio correctas esperadas. Ahora que uso el evento 'Id's para estos eventos para obtener detalles del evento de una api [event details api], tengo un parámetro 'Id' y detailsFunction para llamar a la api con el id. hay una relación de 1 a 1 en 'id' entre estas 2 fuentes de datos. Esperaba obtener 380 filas de detalles del evento también para la 2a tabla que estoy construyendo dinámicamente. Pero obtengo 1500 filas con fecha de inicio antes del mes pasado.
¿Qué me estoy perdiendo aquí? Muchas gracias de antemano.
Eso es extraño. Entonces, ¿todo esto está en la misma consulta? Una vez que devuelva la lista de identificadores de eventos, ¿está invocando la función personalizada para obtener detalles del evento?
¿O hace referencia a la primera consulta de la segunda? Debería funcionar correctamente de cualquier manera, pero no sé si se está realizando algún plegado de consultas extraño. Si carga solo la primera parte, coloca la lista de eventos en una tabla estática e invoca la función, ¿obtiene 380 filas o 1500?
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat: ¡Buenos días! Gracias por su respuesta. Tengo que separar las consultas para estos. En primer lugar, hay una consulta como hemos discutido recientemente para obtener la información de resumen de eventos. A continuación, usando el evento 'Id's de esta tabla, creo dinámicamente la segunda tabla de detalles del evento [usando una segunda función/consulta] para esos 'Id's.
Como prueba: Hago por separado una tabla estática e invoco la funcion [2nd], tengo un no similar. de filas. Por lo tanto, eliminé la 2a tabla e hice el último paso para invocar la función [el datefilter también se copió] para crear la tabla. Ahora, el datefilter también está asociado a esta tabla. Por lo tanto, estoy recibiendo similar no de filas ahora como 'Refresh'!
Como mencioné en mi primer post [tantas comunicaciones ya en este hilo, mis disculpas], tengo una segmentación de datos 'fecha de inicio' para mostrar los eventos en un objeto visual 'Tabla'. Esperaba que esta segmentación de datos mostrara sólo las fechas del último 1 mes a partir de hoy, ya que puse mi 'datefilter' así para obtener los datos. Pero veo que la segmentación de datos muestra fechas de 2014 como que está en la tabla de base de datos.
¿Alguna pista sobre cómo puedo hacer que la segmentación muestre solo las fechas establecidas en mi 'datefilter'? Muchas gracias de antemano. 🙂
También puede usar la consulta datefilter para crear la tabla Date/Calendar. Por ejemplo, "List.Dates(datefilter, Duration.TotalDays(Date.From(DateTime.LocalNow())-datefilter, #duration(1,0,0,0)) como la línea Source, luego convertir a table y agregar columnas de fecha. O bien, si ya tiene una tabla Date, puede filtrarla con datefilter.
saludos
palmadita
To learn more about Power BI, follow me on Twitter or subscribe on YouTube.
Hola @mahoneypat : Gracias por su respuesta. No tengo una tabla de citas. Por lo tanto, intenté crear una nueva fuente como una consulta en blanco como usted mencionó, obtuvo este error:
Estoy tratando de tener un mecanismo de filtro para 'Fecha de inicio' [lista desplegable con Mes y Año] para filtrar los datos en mi evento Tabla visual. Después de que esta consulta funcione, ¿dónde la invoco?
Muchas gracias de antemano.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |