Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
carlosrb1978
Creator
Creator

Conteo distinto en rango de inicio de fecha hasta la actual

Buenas tardes:

 

Agradecería me puedan ayudar con la siguiente consulta

tengo la siguiente tablade clientes por fecha

IDfecha1fecha2fecha3fecha4fecha5fecha6
AX  XX 
BX XX  
C X  X 
D X X  
E  X   
F     X
G  XX  

 

 y deseo por cada fecha obtener el conteo del numero de clientes acumulados, similar  como lo muestra la tabla de abajo

 fecha1fecha2fecha3fecha4fecha5fecha6
Clientes223421
Acum.246667

 

Gracias por la atención

16 Replies
vhespinog
Contributor III
Contributor III

En tu scrip tienes seis columnas de fecha?, o es un solo campo que puede tener n cantidad de fechas? , si pudieras compartir un ejemplo con la estructura real sería mucho mas fácil ayudarte

carlosrb1978
Creator
Creator
Author

Es solo un campo, adjunto archivo, gracias por la ayuda!!

vhespinog
Contributor III
Contributor III

Hola de nuevo, hacerlo a través de set analysis no se puede (o al menos no encontré la manera), sumar los acumulados no es la opción correcta.  y lo puedes comprobar con la siguiente sentencia. (la suma de los acumulados te dará registros de mas) 

RangeSum(Above(Count(DISTINCT Clientes ),0,3))

Solo lo pude solucionar desde el script.

te adjunto el qvw, espero te sirva. 

Saludos. 

carlosrb1978
Creator
Creator
Author

Si, ya había intentando con el rangesum y respecto al Script sería la última opción, ya que si lo hago desde el set analisys lo replicaría para otros casos que tengo, no quiero llegar a crear más campos 😪

Seguiré insistiendo, gracias!!

Saravanan_Desingh

One solution is.

tab1:
LOAD * INLINE [
    ID, fecha1, fecha2, fecha3, fecha4, fecha5, fecha6
    A, X,  ,  , X, X,  
    B, X,  , X, X,  ,  
    C,  , X,  ,  , X,  
    D,  , X,  , X,  ,  
    E,  ,  , X,  ,  ,  
    F,  ,  ,  ,  ,  , X
    G,  ,  , X, X,  ,  
];

tab1X:
CrossTable(fecha,Value)
LOAD * Resident tab1;

tab2:
LOAD *, AutoNumber(fecha) As Key
Resident tab1X;

Drop Table tab1X;

For i=1 To 6
	tmp:
	LOAD Count(DISTINCT If(Value='X',ID)) As Accum
	Resident tab2
	Where Key <= $(i)
	;
	tmp2:
	LOAD $(i) As Key, Accum 
	Resident tmp;
	Drop Table tmp;
Next i
Saravanan_Desingh

Output.

commQV72.PNG

carlosrb1978
Creator
Creator
Author

Consulta y en caso desee hacerlo solo con el Set Analisys, ya que deseo replicarlo con otras tablas y no deseo incrementar mas campos, acá mando una tabla del ejemplo