Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Eliminar duplicados en una dimension

Hola a tod@s,

tengo un problema que no consigo resolver, a ver si alguien puede ayudarme.

Imaginad la tabla de datos siguiente

ArticuloFechaCondicionStock
A115/10/2013125
A124/11/2013134
A112/12/2013318
A203/11/20134480
A205/12/2013226
A330/11/2013450
A415/10/20132260

i necesito mostrar una tabla con solo una fila por cada articulo que tenga la fecha máxima i que cumpla ciertas condiciones.

Por ejemplo, solo deben aparecer las condiciones 1 o 2, con lo que el resultado de mi tabla simple debería contener solo la información de las filas de los artículos marcados en rojo (A1, A2 i A4).

He intentado poner una dimensión calculada para el artículo, una expresión con aggr, etc pero no lo consigo.

Alguna idea?

Gracias de antemano

4 Replies
soniacoprosa
Creator
Creator

Hola Jordi,

Lo que debes hacer es poner la condición de salida del registro (en tu caso que la condición sea 1 ó 2) en cada una de las expresiones de tu tabla, con una sentencia IF, de forma que si se cumple la condición, le pones el valor que corresponda y si no se cumple le pones cero. Después, en la pestaña “Presentación”, marcas “Suprimir valores cero” (si toda la fila/registro tiene valor cero, no saldrá).

// CONDICION SALIDA REGISTRO

IF( Condicion

, Valor correspondiente (dependiendo de la columna en que estés)

, 0

)

Un saludo,

Not applicable
Author

Hola Sonia,

esto ya lo he hecho i funciona pero es la solución a medias, creo.

Además de aplicar las condiciones, debo quedarme con la fila que las cumpla i que tenga fecha máxima de cada articulo, no de todos los datos.

Y ahí es donde no lo consigo.

Gracias.

Not applicable
Author

Por ejemplo, una expresión que tengo (i que luego no muestro la columna) es:

=if(Priority ❤️ and [Service Type] <> 'User Service Request' and Type_Fact = 'Incident' and [Master Ticket]= '.' and [Assigned Group]<>'CH-Platinum Support',

aggr(max(UploadDate14),  [Incident ID]),null())

donde puedes ver que hay más de una condición a aplicar por cada línea de la tabla de entrada.

soniacoprosa
Creator
Creator

Lo único que se me ocurre para la fecha máxima es que lo montes en el script y tal vez no te interese ahí.

Podrías cargar un .qvd , algo así:

Tabla:

LOAD

CAMPO1,

CAMPO2,

FECHA

;

SQL SELECT

CAMPO1,

CAMPO2,

MAX(AÑO||MES) as FECHA

FROM archivo correspondiente de donde obtengas los datos

Where (condicion=”1” or “2”)

;

Un saludo