Para cambiar join entre dos tablas de hechos en MicroStrategy tenemos dos opciones. Una a nivel general, es decir, a nivel de proyecto y que por tanto aplicara a todo lo que ya exista incluyendo todo lo nuevo y otra a nivel de indicador, que solo afectara dónde se utilice el indicador.
Especificaciones del entorno
- Microsoft Windows 10
- MicroStrategy 2021
Situación previa
Antes de ver el ejemplo, te pongo en situación. Tenemos dos tablas de hechos que comparten un atributo llamado país con su correspondiente tabla de lookup. Cada tabla de hechos tiene un indicador diferente. En nuestra tabla de hechos 1 tenemos las ventas y en la tabla de hechos 2 tenemos los ingresos.
Puedes ejecutar este script para realizar este mismo ejemplo:
create table hechos_1 ( id_pais integer, ventas integer ); create table hechos_2 ( id_pais integer, gastos integer ); create table paises ( id_pais integer, pais varchar(30) );
Objetivo
Si no modificamos nada, al utilizar los dos indicadores en un mismo informe, MicroStrategy nos unirá las dos tablas por medio de un inner join como se ve en la siguiente imagen, pero en nuestro caso perderíamos información y necesitamos que nos realice un full outer join o left join.
¿Cómo lo conseguimos?
Nivel de indicador
Si tu objetivo es conseguir un outer join, modifica los dos indicadores, y haz clic en herramientas > tipo de join del indicador…
Despues desmarca la opción Utilizar valor heredado… y selecciona Outer
Si ahora vas a ver la sql del informe, veras que hemos conseguido nuestro objetivo al cruzar las dos tablas con un outer join.
¡Consejo! Si en lugar de un full outer quieres un left outer, cambia esta propiedad en los indicadores de una de las tablas.
Nivel de proyecto
Si tu objetivo es que por defecto siempre se unan por medio de un outer join debes modificar las propiedades de VLDB de la instancia de base de datos y así en todas las tablas de la instancia se aplicara el cambio. Ten en cuenta que esto afectara a todo, es decir, a lo que ya tengas hecho y a todo lo que vayas hacer.
Sigue estos pasos para modificar la instancia para que siempre realice un full outer join entre los indicadores:
- Desde MicroStrategy Developer haz clic derecho en tu proyecto y accede la configuración del proyecto.
- Selecciona la categoría Instancias de base de datos y dentro de esta, Warehouse de datos de SQL.
- Selecciona la instancia a modificar y haz clic en propiedades VLDB
- Busca la carpeta Indicadores y haz clic en la propiedad Metric Join Type
- Desmarca la opción por defecto de heredar el valor y marca la casilla Outer Join.