En la siguiente imagen podemos ver una representación compuesta:
Para realizar esto, lo único que necesitamos es agregar una nueva representación con la misma categoría que la anterior, pero asignándole otro nombre.
Este tipo de Atributos no sólo permiten usar varios campos clave como join entre una Fact y su Dimensión, sino que además, mapeado correctamente puede servirnos como enlace entre dos facts.
COMO REALIZAR UN JOIN ENTRE FACTS
En el siguiente ejemplo, necesitamos utilizar una apertura de la dimensión L_AUSENTISMOS modelada con la FACT_AUSENTISMO, pero que a su vez es necesaria como apertura en la FACT_NOMINA, donde no se encuentra el ID de la dimensión.
Requisitos:
- Debe existir un campo común entre ambas facts para realizar el join.- Debe tener sentido la unión en el modelo de negocio.
Pasos a seguir:
- Realizar un Atributo Compuesto que contenga el ID de la dimensión (PK_ID_Ausentismo) y el ID del
campo común entre las facts (PK_ID_Persona).
- Establecer como tablas de Lookup, en ambas representaciones, la fact y dimensión que tienen relación
entre sí (FACT_AUSENTISMO y L_AUSENTISMOS en nuestro caso).
- Agregar el Hijo mediante el cual se hará el join entre Facts. Para este ejemplo, se agregó PERSONA con
- Agregar el Hijo mediante el cual se hará el join entre Facts. Para este ejemplo, se agregó PERSONA con
una relación del tipo UNO A UNO, el cual generará un join on (PK_ID_PERSONA =
PK_ID_PERSONA).
Resultado del SQL generado por MicroStrategy:
Select a12.PK_ID_AUSENTISMO PK_ID_AUSENTISMO,
a11.PK_ID_PERSONA PK_ID_PERSONA,
a13.ID_AUSENTISMO ID_AUSENTISMO,
a13.DESC_AUSENTISMO DESC_AUSENTISMO,
count(distinct a11.PK_ID_PERSONA) WJXBFS1
from FACT_NOMINA a11
join FACT_AUSENTISMOS a12
on (a11.PK_ID_PERSONA = a12.PK_ID_PERSONA)
join L_AUSENTISMOS a13
on (a12.PK_ID_AUSENTISMO = a13.PK_ID_AUSENTISMO)
|
No hay comentarios:
▼▲ Mostrar / Ocultar comentarios