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: 
Not applicable

Tomar la fecha mas cercana para una operación en el script

Buenos días me surgió una duda usando esta tabla de Incomes, y otra tabla que seria cambio de moneda, en esta ultima tengo fechas que como es obvio el monto de dolar, peso y euro son variables y cambian al día, ahora lo que quisiera hacer es, tomar la fecha mas próxima para realizar el cambio correspondiente al día que se toma el monto de Income ya que en la fecha que tengo de la tabla Tipos de Cambio no existen algunos registros tengo esto:


Tipos de Cambio:

LOAD fecha as FechaID,

    USD,

    MN,

    EURO

FROM

[..\..\QVDs Extraccion\Vs_TiposdeCambio.QVD]

(qvd);

esta tabla la uno a la final de incomes y en ella, tengo estas columnas

Facts:

LOAD

Distinct

Company,

     CustomerID,

     SkuID,

     [Weight Total],

     KamID,

     IdIncome,

     NumOrder,

     OrderDate,

     InvoiceNum,

     InvoiceDate,

     IDFecha,

     Currency,

     [Income Total],

     [Invoice Qty],

     [Sku Price],

     [Total Invoice],

     FechaID,

USD,

MN,

EURO,

IF(Currency='USD',[Income Total]*USD) AS [USD To Pesos],

IF(Currency='USD',[Income Total]*1) AS [Dollars],

IF(Currency='USD',[Income Total]/USD/EURO) AS [USD To Euros],

IF(Currency='MN',[Income Total]*1) AS [Pesos],

IF(Currency='MN',[Income Total]*USD) AS [Pesos To USD],

IF(Currency='MN',[Income Total]*EURO) AS [Pesos To Euros],

IF(Currency='EURO',[Income Total]*EURO) AS [Euros To Pesos],

IF(Currency='EURO',[Income Total]/EURO/USD) AS [Euros To USD],

IF(Currency='EURO',[Income Total]*1) AS [Euros]

resident TempFacts;

DROP Table TempFacts;

1 Reply
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Erick:

Hay varias técnicas para abordar las operaciones en divisas, la que yo utilizo es una mezcla de varias soluciones que encontré en esta comunidad y consiste en:

1) Una tabla con todos los cambios día a día, cada moneda tiene un registro por fecha y una columna por cada factor de cambio a cada una de nuestras divisas (en cada línea hay un factor de cambio consigo mismo que tiene valor 1)

LOAD KeyMoneda, EUR, USD, MXN

From ...

KeyMoneda es un cálculo con Fecha de Cambio y el idMoneda,

2) Cada tabla de hechos tiene un campo KeyMoneda con la Fecha de Operación y el idMoneda (local)

3) Cada usuario tiene asignada una divisa de trabajo

4) En cada documento hay un selector sobre el campo idMoneda con 'Siempre un valor seleccionado'

5) Un disparador 'Al abrir documento' selecciona la divisa del usuario en el campo idMoneda

6) Defino la variable vMoneda  = ONLY(Moneda)

7) Cada vez que uso un campo importe en una expresión esta es la sintaxis SUM( {< ...>}  Importe * $(vMoneda) )

Espero haberte ayudado

Joaquín