Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

USAR CAMPOS DE DISTINTAS TABLAS!

Hola  a todos

Espero me puedan ayudar

Quiero multipicar un tipo de cambio por una cantidad el problema es que el tipo de cambio lo tengo en una tabla y la cantidad en otra tabla intente hacerlo con esl script de abajo pero... me marca que mi campo de moneda no existe en el qvd donde tengo mi cantidad.No se si exista alguna condicion o instruccion que me ayude a poder usar estos dos campos aunque sean de diferentes tablas

Saludos

Este es el script que estoy utilizando

[VBRK]:

LOAD

       VBRK_Moneda as VBRK_Moneda,

       VBRK_TipoDeCambio as VBRK_TipoDeCambio

FROM [LIB://PRD QVD/VBRK.qvd](qvd);

//------------------------------------5--------------------------------------------

[KONV]:

LOAD

    "KONV_Valor Condicion" as KONV_ValorCondicion,

     if(Match("VBRK_Moneda", 'USD','EUR') > 0,

    "KONV_Valor Condicion" * "VBRK_TipoDeCambio",

    "KONV_Valor Condicion" * 1) AS P_ValorCondicion_ValorPesosMexicanos

FROM [LIB://PRD QVD/KONV.qvd](qvd)

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

En las tablas que tienes necesitas tener una columna similar. Por ejemplo

Tabla:

Ordenid,

Ventas

From ventas.qvd

Tabla2:

Ordenid,

Producto

From productos.qvd

Ordenid es la columna asocia o asociacion de las tablas. Hay varias formas de hacer la agregacion que puedes hacer, si es que tienes las columnas de associasion.

Por ejemplo puedes usar applymap,mira el video de abajo

Watch "ApplyMap Function in Qlikview" on YouTube

https://youtu.be/bH2zzYpZWeQ

Tambien puedes usar concanate y crear una mesa vertual (resident load)

Tabla1:

Orderid,

Ventas,

Impuestos

Concanate

Tabla2:

Ordenid

Producto

Mesavertual:

Load

Ordenide,

Ventas * impuestos as 'total',

Producto

Resident nombredemesa group by

Tambien cuando haces algun tipo de agregacion tienes que usar group by

Esto es una ide que puedes usar te recomiendo mirar in you tube, resident load, concanate, y como usar group by in qlikview.

Suerte

View solution in original post

2 Replies
Anonymous
Not applicable
Author

En las tablas que tienes necesitas tener una columna similar. Por ejemplo

Tabla:

Ordenid,

Ventas

From ventas.qvd

Tabla2:

Ordenid,

Producto

From productos.qvd

Ordenid es la columna asocia o asociacion de las tablas. Hay varias formas de hacer la agregacion que puedes hacer, si es que tienes las columnas de associasion.

Por ejemplo puedes usar applymap,mira el video de abajo

Watch "ApplyMap Function in Qlikview" on YouTube

https://youtu.be/bH2zzYpZWeQ

Tambien puedes usar concanate y crear una mesa vertual (resident load)

Tabla1:

Orderid,

Ventas,

Impuestos

Concanate

Tabla2:

Ordenid

Producto

Mesavertual:

Load

Ordenide,

Ventas * impuestos as 'total',

Producto

Resident nombredemesa group by

Tambien cuando haces algun tipo de agregacion tienes que usar group by

Esto es una ide que puedes usar te recomiendo mirar in you tube, resident load, concanate, y como usar group by in qlikview.

Suerte

hector_munoz
Specialist
Specialist

Hola Nacianceno,

Usa la idea de Noe de crear una tabla de mapeo:

MAP_VBRK:

MAPPING LOAD     VBRK_Moneda               as [MAP_VBRK Moneda],

                                VBRK_TipoDeCambio    as [VBRK TipoDeCambio]

FROM                     [LIB://PRD QVD/VBRK.qvd](qvd);

, en la que almacenes el tipo de cambio de todas las monedas; y luego en tu tabla de hechos KONV usa un ApplyMap() para traerte el tipo de cambio de la moneda de cada registro:

[KONV]:

LOAD     "KONV_Valor Condicion"               as KONV_ValorCondicion,

               if(Match("VBRK_Moneda", 'USD','EUR') > 0,

                  "KONV_Valor Condicion" * ApplyMap('MAP_VBRK', "VBRK_Moneda", 0),

                  "KONV_Valor Condicion" * 1)                                    AS P_ValorCondicion_ValorPesosMexicanos

FROM     [LIB://PRD QVD/KONV.qvd](qvd);

Varias cosas:

- Con el tipo de cambio no suele bastar con el código de la moneda, sino que además tienes que tener en cuenta una fecha, así que en la tabla de mapeo (MAP_VBRK) tendrías que tener un campo clave compuesto de la fecha y el código de la moneda.

- Ojo con el valor ELSE de la función ApplyMap() (su tercer parámetro), ya que si no pones ningún valor por defecto y no encuentra correspondencia para el segundo parámetro te devuelve el segundo parámetro.

No sé si me he explicado... Para resumir, y como Noe te sugiere, échale un vistazo a la funcionalidad que ofrecen las tablas de mapeo y la función ApplyMap() porque su uso es muy generalizado y simplifica mucho la vida del desarrollador.

Espero que te ayude.

Saludos,

H