none
Medida a representar entre fecha inicio y fecha fin

    Pregunta

  • Buenas,

    Tengo una tabla de hecho (creo que es una factless fact table de hecho)del histórico de empleados tal que asi:

    DNI-----fecha_inicio----fecha_fin---cargo---sección---sexo--...y muchas mas campos relacionado con los empleados

    Lo tengo añadido al cubo como medida Nº Empleados(cuenta DNis) y relacionado con todas las dimensión incluidas las "dos" dimensiones de tiempo fecha inicio y fecha fin.

    Mi problema viene al representar la evolución histórica del nº de empleados por sección, cargo...y por supuesto por mes y año.

    ¿Se puede hacer esto de alguna manera a nivel de cubo? (y que no sea en la ETL y escribir un registro por mes, mientras estuvo el empleado trabajando, en una tabla nueva) 

    Muchas gracias y un saludo

    jueves, 18 de enero de 2018 13:10

Respuestas

  • El problema de los factless es justo este tipo de representación

    Create una vista sobre esta tabla que sea

    select dni,fechainicio as fecha,cargo,seccion,sexo,1 conteo from empleados

    unión all

    select dni,fechafin as fecha,cargo,seccion,sexo,-1conteo from empleados where fechafin no sea vacia

    tu métrica simplemente será con el sum de conteo, y luego sobre esa (que ocultas) pones un mdx de este tipo

    Sum(null:fecha.fecha.currentmember,Measures.conteo).

    Es decir el acumulado desde el principio de los tiempos de esa cuenta. como cuando un empleado se da de alta suma 1 y cuando se da de baja resta 1, tienes exactamente eso, el numero de empleados activos en un momento del tiempo


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Marcado como respuesta Ricardo760 jueves, 25 de enero de 2018 11:07
    lunes, 22 de enero de 2018 17:32
    Moderador

Todas las respuestas

  • Saludos

    No entiendo del todo tu pregunta, si tienes una tabla de dimensiones de tiempo (lo cual es normal y agrupas por hasta dia, semana, mes, año) que seria lo mas normal puedes hacer esto (segun lo entiendo). 

    Si es correcto crea una dimension de tiempo.

    viernes, 19 de enero de 2018 20:04
  • El problema de los factless es justo este tipo de representación

    Create una vista sobre esta tabla que sea

    select dni,fechainicio as fecha,cargo,seccion,sexo,1 conteo from empleados

    unión all

    select dni,fechafin as fecha,cargo,seccion,sexo,-1conteo from empleados where fechafin no sea vacia

    tu métrica simplemente será con el sum de conteo, y luego sobre esa (que ocultas) pones un mdx de este tipo

    Sum(null:fecha.fecha.currentmember,Measures.conteo).

    Es decir el acumulado desde el principio de los tiempos de esa cuenta. como cuando un empleado se da de alta suma 1 y cuando se da de baja resta 1, tienes exactamente eso, el numero de empleados activos en un momento del tiempo


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    • Marcado como respuesta Ricardo760 jueves, 25 de enero de 2018 11:07
    lunes, 22 de enero de 2018 17:32
    Moderador
  • PERFECTO!!!... Ha quedado perfecto de esta manera. De hecho cuando vi tu respuesta, me jodió no haber caído yo mismo.

    Muchas gracias Miguel

    jueves, 25 de enero de 2018 11:14
  • No es un tema tan obvio como parece :). De hecho tiene un montón de aplicaciones que en general a los que analizamos este tipo de cosas nos cuesta bien.

    Me alegra que te funcionara :)


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    jueves, 25 de enero de 2018 11:50
    Moderador