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
Estoy creando una consulta de Power BI para un sistema que se ejecuta en SQL Server local (2016). Básicamente, el sistema tiene departamentos multipe que tiene su propia base de datos con esquema idéntico. Necesito crear una consulta que se ejecute en todos los departamentos (bases de datos) y obtener filas de una tabla (oficina). Así que pude obtener la lista de departamentos (bases de datos) con lo siguiente:
let
Source = Sql.Database("dbserver01/db01", "master", [Query="SELECT name FROM sys.databases"])
Pero ahora necesito recorrer en bucle este resultado y consultar otras bases de datos de la siguiente manera:
<some looping with results above>
let
offices = Sql.Database("dbserver01/db01", Source[name], [Query="SELECT officeName FROM Offices"]
¿Hay alguna manera de recorrer en bucle Source y crear subconsulsiones para cada base de datos y devolver el resultado de officeName combinado en las bases de datos?
Solved! Go to Solution.
De todos modos, la solución es crear la consulta con el parámetro como el nombre de la base de datos y devolver los nombres de oficina para un departamento determinado. A continuación, puede convertir esta función en una función con los parámetros getOffices(DepartmentName).
A continuación, cree otra consulta a la base de datos maestra para obtener el nombre del departamento y use Table.TransformRows(Departments, each getOffices(_[dbName])) y, a continuación, convierta la lista resultante en Table.
Esta es una versión mucho más corta de lo que he escrito originalmente. No estoy seguro de si debo marcar esto como la respuesta...
¿Crear una vista consultando estas bases de datos no es una opción?
Técnicamente, podría codificar todas las bases de datos y anexar consultas, pero tenemos más de 30 departamentos y necesitamos tener en cuenta los nuevos departamentos que se están agregando. Sería ideal hacerlo mediante programación si fuera posible.
Puede crear una selección dinámica dentro de un procedimiento para ejecutarla.
También es posible hacerlo mediante Power Query mediante la creación de una función para seleccionar en cada base de datos.
Voy a trabajar en un ejemplo aquí.
En serio, Microsoft, después de tomar mucho tiempo y un gran esfuerzo para escribir una solución dolorosamente larga a mi pregunta, y su software de foro simplemente abandona el trabajo y me dice que no he iniciado sesión?
De todos modos, la solución es crear la consulta con el parámetro como el nombre de la base de datos y devolver los nombres de oficina para un departamento determinado. A continuación, puede convertir esta función en una función con los parámetros getOffices(DepartmentName).
A continuación, cree otra consulta a la base de datos maestra para obtener el nombre del departamento y use Table.TransformRows(Departments, each getOffices(_[dbName])) y, a continuación, convierta la lista resultante en Table.
Esta es una versión mucho más corta de lo que he escrito originalmente. No estoy seguro de si debo marcar esto como la respuesta...
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |