Union in Memory

En el artículo Joins in Memory vimos como unir dos tablas en memoria mediante un Join de manera que el resultante era una tabla con las mismas filas que la tabla principal pero el total de columnas de las dos tablas.

En determinados casos, nos puede interesar unir los resultados de dos consultas una detrás de otra en la misma tabla resultante, o lo que es lo mismo, realizar un UNION en memoria.

Si las dos tablas están en la misma base de datos se puede realizar mediante una única consulta

Select 'Ventas' as Serie, Mes, Sum(ImporteBruto) as Valor
FROM VistaVentas
Where Ejercicio = 2014
Group By Mes

UNION

Select 'Objetivo' as Serie, Mes, Sum(Objetivo) as Valor
FROM Objetivos
Where Ejercicio = 2014
Group By Mes

Sin embargo, esta operación no se puede realizar en caso de que las bases de datos de Ventas y de Objetivos estén en sistemas diferentes, en este caso podemos utilizar los pasos de Atlas SBI para obtener nuestra tabla unida.

En primer lugar crearemos un paso con la consulta de los valores


Seguidamente crearemos un nuevo paso de tipo DataBaseQuery.



y modificaremos el nombre de la tabla destino (Target table) poniendo el mismo nombre de la tabla destino del primer paso tal como indica la siguiente figura.


acto seguido podremos seleccionar la nueva conexión y especificar la consulta, teniendo en cuenta, eso sí que los nombres de campos han de coincidir con los nombres de campos de la primera consulta.




0 comentarios :

Publicar un comentario

Lo más visto