Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
carlosac
Creator II
Creator II

FULL JOIN CON 2 TABLAS


Buenas, tengo  un pequeño problema con 2 tabla.

La tabla 1 tiene stock (fecha del stock actual)

FECHA DE HOY   CODVAR   STOCK

20140205                100901       5

20140205               1002001      6

20140205               1102001    8

La tabla 2 tiene ventas: (ventas por meses)

AÑOMESCODARTVENTA
201401100915
201402100208

Y quisiera hacer una tabla del tipo

AÑOMESCODARTSTOCK-VENTA
2014011009-10
20140210020-2
201402110208

La relación entre las variables CODART y CODVAR es que la primera es igual que la segunda pero quitando a la variable CODVAR los 2 ultimos dígitos.   Es decir 1009 sale de 100901 quitando los 2 ultimos dígitos.

Alguna posible idea....????

1 Solution

Accepted Solutions
soniacoprosa
Creator
Creator

Hola Galván,

Yo utilizaría un Outer Join para unir las tablas, de esa forma se añadirían también los códigos que no existan en la 1ª tabla.

Tendrás que transformar los datos de forma que en la tabla_1 crees otro campo CODART (quitándole como dices los 2 últimos dígitos), ése será el campo de unión con la tabla_2. En la tabla_2 para que funcione el Outer Join debes tener el campo de unión y todos aquellos campos que tenga la tabla_1, aparte de los propios de la tabla_2. Así que tendrás que crear un campo STOCK, aunque le des valor cero (0 as STOCK). Y como el campo AÑOMES no tiene el mismo formato que FECHA DE HOY, creo que tendrás que crearte también un campo FECHA DE HOY en la tabla_2 (puedes crearlo con la fecha que tienes en ésta tabla poniendo de día 01 por ej.)

El resultado debería ser una tabla que tenga los siguientes campos:

FECHA DE HOY

CODVAR

STOCK

CODART

AÑOMES

VENTA

Una vez que tengas esto, ya podrías construir la tabla que tú quieres con el STOCK-VENTA.

Un saludo,

View solution in original post

4 Replies
julian_rodriguez
Partner - Specialist
Partner - Specialist

Hola Galvan

Para quitar los dos últimos dígitos usa la función Mid().. y tal vez Len()...

Algo como:


Mid(CODVAR, 1, Len(CODVAR) -2) AS Llave


En caso que tuviese espacios en blanco al inicio o al final....


Mid(Trim(CODVAR), 1, Len(Trim(CODVAR)) -2) AS Llave


Saludos

soniacoprosa
Creator
Creator

Hola Galván,

Yo utilizaría un Outer Join para unir las tablas, de esa forma se añadirían también los códigos que no existan en la 1ª tabla.

Tendrás que transformar los datos de forma que en la tabla_1 crees otro campo CODART (quitándole como dices los 2 últimos dígitos), ése será el campo de unión con la tabla_2. En la tabla_2 para que funcione el Outer Join debes tener el campo de unión y todos aquellos campos que tenga la tabla_1, aparte de los propios de la tabla_2. Así que tendrás que crear un campo STOCK, aunque le des valor cero (0 as STOCK). Y como el campo AÑOMES no tiene el mismo formato que FECHA DE HOY, creo que tendrás que crearte también un campo FECHA DE HOY en la tabla_2 (puedes crearlo con la fecha que tienes en ésta tabla poniendo de día 01 por ej.)

El resultado debería ser una tabla que tenga los siguientes campos:

FECHA DE HOY

CODVAR

STOCK

CODART

AÑOMES

VENTA

Una vez que tengas esto, ya podrías construir la tabla que tú quieres con el STOCK-VENTA.

Un saludo,

carlosac
Creator II
Creator II
Author

Gracias Sonia y Julian, me ha funcionado correctamente.

soniacoprosa
Creator
Creator

De nada.