none
Relacion de Tablas RRS feed

  • Pregunta

  • Estimados buenas noches:

    cuento con 3 tablas, la primera es fechas, Roster(cuenta con datos de empleados por día desde el puesto que tiene en cada dia en particular, es decir se genera un registro de datos para cada día), y la ultima tabla es DATA (Cuentas con registros diarios de cada empleado, único por día). 

    la duda me genera al querer generar un informe de por ejemplo horas trabajadas(desde DATA) para un rango de fecha en específico, para los empleados que trabajaron en un área en particular(tomando desde roster).

    por lo que para las dos tablas en ese rango de días tendré varios registros.-

    viernes, 8 de noviembre de 2019 3:00

Todas las respuestas

  • Hola Alejandro Abdala:

    Si realizas la union por los campos clave y también por día, ya que solo tienes uno será uno, pero si puedes tener varios registros puedes agrupar para que solo te salga uno.

    Si necesitas más ayuda, pega un script con tus tablas (o al menos las columnas más significativas), y lo que deseas obtener.

    viernes, 8 de noviembre de 2019 7:09
  • Estimado como estas?, te muestro algunas capturas de los datos para que veas. Te muestro en excel que es lo que tengo a mano. 

    Primero la tabla Roster ( En esta tabla está por representante y su respectivo jefe) para un día tenemos muchos representantes.

    ahora en la otra tabla de data está para cada día y por representante tenemos una fila con datos relacionados a su trabajo. (La dificultad está que necesitaría mostrar datos desde un rango de fecha, agrupando por manager y luego por representante, donde en este rango de fecha puede variar [desde la tabla de arriba] y contabilizar los de abajo.

    viernes, 15 de noviembre de 2019 14:10
  • Hola Alejandro Abdala:

    Pero eso no es suficiente, porque se muestra la información de las fechas formateada por Excel, y no sabemos si es tipo varchar, date, datetime, datetime2, para cada columna.

    Puedes facilitarnos esa información.

    viernes, 15 de noviembre de 2019 18:58
  • Hola Alejandro Abdala:

    /* Simulación 01 
    Escenario
    */
    CREATE TABLE roster
    (ac               INT, 
     idccm            INT, 
     loginccms        VARCHAR(100), 
     position         VARCHAR(100), 
     empleado         VARCHAR(100), 
     idccms           INT, 
     manager          VARCHAR(100), 
     idccmscmd        INT, 
     managerdemanager VARCHAR(100), 
     fechadim         DATE
    );
    
    CREATE TABLE datos
    (idccms   INT, 
     fecha    DATE, 
     hiredate VARCHAR(20),
     lastacd int,
     dimroster int
    );
    GO
    
    INSERT INTO roster (ac, idccm, loginccms, position, empleado, idccms, manager, idccmscmd, managerdemanager, fechadim)
    values
    (3394,2313364,'amicone.8'		,'Representative','Amicone, Lucas Matias',1914668,'Maidana, Ana Maria',480472,'Diaz, Debora Romina','20191021'),
    (3477,2792902,'ruizmedinana.11'	,'Representative','Ruiz Medina, Mauro D.',2358530,'Castillo, Geronimo',480472,'Diaz, Debora Romina','20191021'),
    (3687,1496546,'pereyra.53'		,'Representative','Pereyra, Andrea Roxa.',1914668,'Maidana, Ana Maria',480472,'Diaz, Debora Romina','20191021'),
    (3645,2358525,'diaz.993'		,'Representative','Diaz, Sebastián Alej.',1914668,'Maidana, Ana Maria',480472,'Diaz, Debora Romina','20191021'),
    (3608,2792821,'medina.752'		,'Representative','Medina, Mayra Yamila ',2358530,'Castillo, Geronimo',480472,'Diaz, Debora Romina','20191021'),
    (3661,1514540,'albarracn.5'		,'Representative','Albarracín, Pero Luc.',2358530,'Castillo, Geronimo',480472,'Diaz, Debora Romina','20191021'),
    (3381,3503361,'unzagasandes.5'	,'Representative','Unzaga Sandes, Fernan',null   ,null				  ,480472,'Diaz, Debora Romina','20191021'),
    (3465,3503365,'cordoba.79'		,'Representative','Córdoba, Diego Maximo',null   ,null				  ,480472,'Diaz, Debora Romina','20191021'),
    (null,2792441,'padilla.424'		,'Representative','Padilla, Bruno Nicola',null   ,null				  ,480472,'Diaz, Debora Romina','20191021'),
    (3464,3503363,'albornoz.73'		,'Representative','Albornoz, Daiana Jane',null   ,null				  ,480472,'Diaz, Debora Romina','20191021'),
    (3374,480472 ,'diaz.100'		,'Supervisor	','Diaz, Debora Romina  ',null   ,null				  ,null		,null,				'20191021'),
    (3374,480472 ,'castillo.101'	,'Supervisor	','Castillo, Geronimo Gr',null   ,null				  ,null		,null,				'20191021'),
    (3374,480472 ,'Maidana.102'		,'Supervisor	','Maidana, Ana Maria	',null   ,null				  ,null		,null,				'20191021');
    GO
    
    INSERT INTO DATOS (idccms, FECHA, hiredate, lastacd, dimroster)
    VALUES
    
    (1914668,'20191020','2010-04-12',3490,0),
    (2358530,'20191020','2011-06-06',3625,0),
    (1914668,'20191020','2011-07-04',3653,0),
    (1914668,'20191020','2017-02-13',3495,0),
    (2358530,'20191020','2016-12-26',3623,0),
    (2358530,'20191020','2016-12-26',3639,0),
    /* DESDE AQUI */
    (1914668,'20191021','2010-04-12',3490,0),
    (2358530,'20191021','2011-06-06',3625,0),
    (1914668,'20191021','2011-07-04',3653,0),
    (1914668,'20191021','2017-02-13',3495,0),
    (2358530,'20191021','2016-12-26',3623,0),
    (2358530,'20191021','2016-12-26',3639,0),
    /* HASTA AQUI */
    (1914668,'20191022','2010-04-12',3490,0),
    (2358530,'20191022','2011-06-06',3625,0),
    (1914668,'20191022','2011-07-04',3653,0),
    (1914668,'20191022','2017-02-13',3495,0),
    (2358530,'20191022','2016-12-26',3623,0),
    (2358530,'20191022','2016-12-26',3639,0);
    
    GO

    En la primera entrada dices:

    cuento con 3 tablas

    pero luego en la segunda muestras solo dos.

    Voy a trabajar con este segundo escenario.

    Si observas los insert que te he planteado. los representantes dependen de 2 supervisores, y estos a su vez de una manager de manager.

    En los datos he puesto los valores repetidos para 3 dias.

    Las fechas las he tratado con el estandard yyyyMMdd y así da igual que configuración de idioma tengas, que es no genera errores en la insercción si es 31/08/2019 en formato por ejemplo español o 08-31-2019.

    (La dificultad está que necesitaría mostrar datos desde un rango de fecha, agrupando por manager y luego por representante, donde en este rango de fecha puede variar [desde la tabla de arriba] y contabilizar los de abajo.

    En la solución que te propongo dispones de los alias de tabla para limitar en el wher por las fechas de las dos tablas.

    SELECT * FROM roster R 
    	INNER JOIN datos d on r.idccms = d.idccms 
    	where 
    		d.fecha > '20191020' and d.fecha < '20191022'
    
    	ORDER BY manager, empleado
    	

    También puedes relacionar directamente en el on r.idccms = d.idccms and r.fechadim = d.fecha

    y luego limitar en el where por r.fecha. Con los datos cargados solo saldrá lo del día 21.

    Ahora bien, no se deduce, lo que quieres decir con agrupar.

    sábado, 16 de noviembre de 2019 7:03