Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola amigos soy nuevo en esto del QV, en la empresa donde trabajo me han pedido crear un modelo el cual debo alimentar de dos diferentes bases de datos a continuación dejo ejemplo de lo que tengo y de el resultado que quiero para ver si pueden apoyarme para hacer dicho modelo
DB1
Tabla1
NumeroEmpleado
Nombre
Apellidos
DB2
Tabla1
IDUsuario
NumeroEmpleado
Tabla2
IDUsuario
Semana
Día
Horas
estas son mis tablas donde la Tbl1 de la DB1 contiene la información que requiero de los usuarios dados de alta en la Tbl1 de la DB2 y lo que quiero es unir dicha información junto con la Tbl2 de la DB2 para obtener lo siguiente:
Nombre Apellidos Semana Día Horas
Carlos Peña 1823 04-06-2018 9
Carlos Peña 1823 05-06-2018 9
Carlos Peña 1823 06-06-2018 7.5
Carlos Peña 1823 07-06-2018 9
Carlos Peña 1823 08-06-2018 9
Frank Garcia 1823 04-06-2018 7
Frank Garcia 1823 05-06-2018 8
Frank Garcia 1823 06-06-2018 8
Frank Garcia 1823 07-06-2018 4
Frank Garcia 1823 08-06-2018 8
de ante mano muchas gracias por su colaboración
Que tal Mikel,
La solución a lo que comentas, es unir la tablas mediante Joins. Te adjunto el documento de Qlik donde realice la simulacion de tu problema con la solución.
Tabla1_BD1:
LOAD * Inline [
NumeroEmpleado,Nombre,Apellidos
1001,Jose,Perez Lopéz
1102,Juan, Castro Gonzalez
1201,Pedro, Garcia Garcia
];
Tabla1_DB2:
LOAD * Inline [
IDUsuario,NumeroEmpleado
5529,1001
5530,1102
5531,1201
];
Tabla2_DB2:
LOAD * Inline [
IDUsuario, Semana, Día,Horas
5529,1820,04/06/2018,9
5529,1820,05/06/2018,7.5
5530,1820,06/06/2018,8
5530,1820,07/06/2018,7
5531,1820,08/06/2018,7
5531,1820,09/06/2018,6
];
Left Join (Tabla1_BD1)
LOAD
NumeroEmpleado,
IDUsuario
Resident Tabla1_DB2;
DROP Table Tabla1_DB2;
Left Join (Tabla1_BD1)
LOAD
IDUsuario,
Semana,
Día,
Horas
Resident Tabla2_DB2;
DROP Table Tabla2_DB2;
Espero te sea de ayuda.
Saludos.
gracias amigo, haré las pruebas y comento el resultado.
que tengas un excelente fin de semana
Hola Bertin Abel Martinez Plata ya realicé las pruebas y me marca un error al recargar el script me dice que el NumeroEmpleado en el primer Join no se encuentra el campo
Que tal Mikel,
¿El Script que te marca error es el del código que te compartí o el que estas implementando?
Si es en tu implementación podras compartirme un documento de Qlik solo con tu implementación o en un archivo plano compartirme esa parte del codigo para ayudarte a encontrar el problema.
Saludos.
SQL SELECT *
FROM "TS".dbo.Timesheets;
SQL SELECT *
FROM "TS".dbo.Users;
SQL SELECT *
FROM "TS".dbo.StatusTS;
SQL SELECT *
FROM "TS".dbo.BranchOffices;
//-------- Start Multiple Select Statements ------
SQL SELECT EMPLOYID
FROM "TS01".dbo.UPR00100;
SQL SELECT FRSTNAME
FROM "TS01".dbo.UPR00100;
SQL SELECT LASTNAME
FROM "TS01".dbo.UPR00100;
//-------- End Multiple Select Statements ------
UsuariosDy:
LOAD * Inline [
EMPLOYID,FRSTNAME,LASTNAME
];
UsuariosTS:
LOAD * Inline [
Id,EmployID
];
Timesheets:
LOAD * Inline [
UserID,WeekCapture,DayCapture,CapturedHours
];
Left Join(UsuariosDy)
LOAD
EMPLOYID,
Id
Resident UsuariosTS;
DROP Table UsuariosTS;
Left Join (UsuariosDy)
LOAD
UserID,
WeekCapture,
DayCapture,
CapturedHours
Resident Timesheets;
DROP Table Timesheets;
Que tal, Mikel
La causa de tu error radica en tu tabla UsuariosTS, los nombres de los campos no coinciden con el de las demás tablas es por eso que no se pueden usar como campos llave en un Left Join.
Replicando tu error es el siguiente:
La forma de solucionarlo es renombrar los campos de la tabla puente que en este caso es "UsuariosTS" yo lo hice usando una carga precedente.
A continuacion como queda el script con la modificación que te comento:
UsuariosDy:
LOAD * Inline [
EMPLOYID,FRSTNAME,LASTNAME
101,JUAN,PEREZ
102,PEDRO,LOPEZ
];
////////Aqui es donde uso la carga precedente para renombar los campos ///////////////////////////////////
UsuariosTS:
LOAD
Id AS UserID,
EmployID AS EMPLOYID
;
LOAD * Inline [
Id,EmployID
501,101
502,102
];
Timesheets:
LOAD * Inline [
UserID,WeekCapture,DayCapture,CapturedHours
501,520,04/07/2018,9
502,520,05/07/2018,8
];
Left Join(UsuariosDy)
LOAD
EMPLOYID,
UserID
Resident UsuariosTS;
DROP Table UsuariosTS;
Left Join (UsuariosDy)
LOAD
UserID,
WeekCapture,
DayCapture,
CapturedHours
Resident Timesheets;
DROP Table Timesheets;
Espero te sea de ayuda.
Saludos.
Hola amigo, ahora si cargó sin problemas pero no me trae datos jajaja creo que el QV no es para mí
Que tal, Maikel
Jajaja, el secreto esta en ser paciente todos empezamos sin saber nada de QV.
Ahora bien con tu problema, me es dificil ayudarte sin ver como estan tus datos, hay forma de que puedas compartirme tu documento de Qlik con un segmento de tus datos?
Saludos.
como puedo compartirlo acá en el foro ???