Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buen dia a todos, tengo un problema que no se como resolverlo.
Tengo datos de empleados con una fecha de ingreso y una fecha de egreso (en algunos casos). Quiero hacer un grafico de lineas que indique la evolucion de los empleados en la empresa, es decir, quiero ir acumulando cuantos ingresaron y restando cuantos se fueron.
Para el mismo año quiero contar los que ingresaron y restar los que egresaron, y a ese valor acumularlo de acuerdo al valor anterior.
Un ejemplo:
Empleado | Fecha Ingreso | Fecha Egreso |
---|---|---|
Emp1 | 05/12/2014 | |
Emp2 | 01/12/2014 | 20/02/2015 |
Emp3 | 10/02/2015 | |
Emp4 | 12/02/2015 |
Lo que me daria como resultado:
2014 = 2 (Ingresaron 2 empleados)
2015 = 1 (Ingresaron 2 empleados y se fue 1)
El problema que tengo es que yo obtengo el año a partir de una fecha, en mi caso lo hice a partir de la fecha de ingreso ( year(fechaIngreso)), lo que no me refleja los que se fueron en ese mismo año.
Deberia unificar las 2 fechas, alguien sabe como hacerlo o como podria solucionarlo?
Hola Rodrigo,
puedes probar a cargar la tabla dos veces y concatenandolas una como ingreso y otra como egreso renombrando el campo de la fecha correspondiente asi como un campo nuevo que te indique el tipo de fecha.
Ej.
Datos:
load
Empleado,
'Ingreso' as Movimiento,
Fecha ingreso as Fecha,
from tabla;
concatenate
load
Empleado,
'Egreso' as Movimiento,
Fecha egreso as Fecha
from tabla;
Tras esto puedes tratar la tabla resultante
DatosFin
load
*,
year(Fecha) as Año,
month(Fecha) as Mes
resident Datos;
drop table Datos Borra o se enlazaran las dos
Luego solo tienes que usar un conjunto como expresion count({<Movimiento={'Ingreso'}>} distinct Empleado) para ingresos y count({<Movimiento={'Egreso'}>} distinct Empleado) para egresos
Un Saludo
Te recomiendo crear una tabla de calendario maestro.
Luego cargar los datos en dos tablas: una de ingresos y otra de egresos. Finalmente renombras los campos de fecha para que se llamen igual (el de la fehca de ingresos y el de la de egresos deben llamarse igual que el campo fecha del calendario maestro o crear en el calendario maestro dos campos idénticos al de la fecha, uno con el nombre de la fecha de ingresos y otro la de egresos).
De esta manera filtras por el año y el mes del calendario maestro y se seleccionan las fechas relacionadas de las dos tablas.
Al hacer eso creara una referencia circular por el campo empleado.
Hola Rodrigo.
Lo que indica David te puede ayudar, ya que de esa forma estarias optimizando las expresiones en tus graficos.
Es importante ver la forma de adecuar nuestro script de carga para la obtencion de resultados esto bajo el criterio de lo que se desea obtener.
Adjunto unos graficos espero te sirvan.
1) Script (Carga y Modificacion)
Datos:
LOAD * INLINE [
Empleado, FechaIngreso, FechaCese
Emp1, 01/02/2011,
Emp2, 10/03/2011, 15/11/2011
Emp3, 15/06/2012, 11/12/2014
Emp4, 23/09/2012, 21/12/2013
Emp5, 05/11/2012, 25/10/2013
Emp6, 14/07/2013,
Emp7, 10/06/2014, 20/08/2014
Emp8, 01/08/2014,
Emp9, 23/12/2014,
];
IngresoCese:
Load Empleado,
'IN' as IN_CE,
Year(FechaIngreso) as Año,
FechaIngreso as Fecha_IN_CE,
1 as Cont
resident Datos where FechaIngreso <> '';
Load Empleado,
'CE' as IN_CE,
Year(FechaCese) as Año,
FechaCese as Fecha_IN_CE,
-1 as Cont
resident Datos where FechaCese <> '';
drop table Datos;
2) Grafico de Lineas
Dimension:
Año
Expresion:
Linea
Sum(Cont)
Punto
Sum(Cont)
3) Grafico Tabla Simple
Dimension:
Año
Expresion:
Ingresaron
count({<IN_CE={'IN'}>}IN_CE)
Salieron
count({<IN_CE={'CE'}>}IN_CE)
Resultado
Sum(Cont)
Tener en cuenta que el grafico de lineas al dar valor 0 no mostrara el año, para tal caso tienes que desmarcar "Suprimir Valores Cero"
Espero te sirva.
Atte.
Luis Valencia