Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
gsegreda
Contributor III
Contributor III

Controlar la duplicidad de datos al cargar nueva información

Hola Comunidad.

No se como colocar en el script de QlikSense un control para evitar que se dupliquen los datos al incorporar la nueva data, recibo un archivo cada mes y quiero actualizar una base de datos QVD.

Dentro de los nuevos datos no vienen fechas específicas, solo el número de mes y el año.

Los campos de tiempo que tengo son estos:

clipboard_image_0.png

Esto es lo que me han sugerido hacer, pero algo me está haciendo falta para que controle NO duplicar los datos si es que el mes y año ya están incluidos en el QVD. Lo que está haciendo es duplicar los datos del nuevo archivo que contiene un mes que ya está en el histórico.

 

  • Cargar o leer la información nueva de los ficheros XXXX.xlsx en la tabla “Nuevo”.
  • Luego crear una tabla con los valores distintos del campo [MesAño]

(creado con la fórmula Date(MakeDate(Año,Mes.),'MMM-YYYY')) de la tabla 'Nuevo' y lo llamaría p.e. [DISTINTOS MesAño]

  • Finalmente, cargar la información del QVD histórico con un WHERE de esta forma:

          WHERE Not(Exists('DISTINTOS_MesAño', MesAño))

  • Luego borrar las tablas que no se utilizan.

Entonces, que estaré haciendo mal????

 

Esta es la secuencia del SCRIPT:

 

Datos:

LOAD DISTINCT

DATE(MakeDate(Año,Mes.),'MMM-YYYY')as [DISTINTOS_MesAño]

FROM [lib://QVD/DATA.qvd]

(qvd);

 

LOAD

    DATE(MakeDate(Año,Mes.),'MMM-YYYY')as [MesAño],

    makedate(Año,[Mes.]) as Fecha,

    [Año],

   [Mes.],

    [Año_Mes],

            [SKU],

            [UPC],

            [Ventas_Unidades],

            [Ventas_Valor],

FROM [lib://Nuevos Datos/Nuevos_Datos.xlsx]

(ooxml, embedded labels, table is Datos);

 

LOAD

    DATE(MakeDate(Año,Mes.),'MMM-YYYY')as [MesAño],

    makedate(Año,[Mes.]) as Fecha,

    [Año],

    [Mes.],

    [Año_Mes],

    [SKU],

    [UPC],

    [Ventas_Unidades],

    [Ventas_Valor],

    FROM [lib://QVD/DATA.qvd]

(qvd)

Where Not(Exists('DISTINTOS_MesAño', [MesAño] ));

 

Store Datos into [lib://QVD/DATA.qvd]

(qvd);

Drop Table Datos;

Load * From [lib://QVD/DATA.qvd]

(qvd);

 

Agradezco su siempre útil colaboración.

Gracias.

 

Labels (5)
1 Reply
Seyko
Partner - Creator
Partner - Creator

En esta página de ayuda de Qlik, tiene diferentes escenarios que deberían permitirle auditar su script. Sigue este enlace:
 
 
Atentamente
Excuse my english, i'm french!