Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
rulohx87
Contributor III
Contributor III

Ayuda en una Sub-Consulta

Hola amigos,

Miren tengo el siguiente caso. Y no se como resolverlo primeramente lo que deseo es "obtener el numero de DESERTORES PARA UNA ESCUELA" Para esto:

Si ESTATUS= BD, BG, DM, BR, BT es un desertor. Siempre y cuando ese alumno no tenga un ESTATUS = P,I,C,NP,SC en el mismo ciclo escolar

Los siguientes selectores ilustran lo que deseo hacer pero que ese dato este contenido en un OBJETO DE TEXTO.


REGISTROS 1,370,089

IMG1.png

Seleccionamos todos lo que contienen "B*" ( REGISTROS 49,536 ) "En teoria estos son los desertores"

IMG2.png

Pero cuando seleccionamos el CURP de los 49,536 y deseleccionamos el ESTATUS nos da más opciones de ESTATUS.

IMG3.png

Ahora si seleccionamos solo los contienen ESTATUS = P, I, C, NP, SC Nos dan los que "NO SON DESERTORES PERO QUE TIENEN UNA BAJA"

IMG4.png

LOS 24,023 ES EL DATO QUE DESEO OBTENER EN UN OBJETO DE TEXTO

1 Solution

Accepted Solutions
rulohx87
Contributor III
Contributor III
Author

Vientos amigo,

Acabo de resolver mi problema. Consistia en buscar sobre la misma tabla estatus que fueran diferentes a una clave.

=sum(aggr(if(count({<STATUS={'B*'}>}total <CODE> CODE)=count(total <CODE> CODE),1,0),CODE))

STATUS

CODE

BD

001

BG

002

NP

002

NP

003

C

003

B

004

C

005

NP

006

B

006

P

001

BG

007

B

002

BD

008

REGLA: Obtener el número de codigos que en su estatus contengan una “B”. Siempre que el mismo codigo no contenga un estatus diferente (P,C.NP).

IDEA: Si hacemos una  formula como;  count({<Estatus={“B*”}>}código) obtengo 7. Sin embargo en el resultado, existen códigos que contienen un diferente estatus “P, C, NP”. Que no se deben contabilizar. Como lo son;

001 contiene estatus “BD,P”

002 contiene un status “B, BG,NP”

004 contiene estatus “B” (Si se cuenta)

006 contiene estatus “B,NP”

007 contiene estatus “BG” (Si se cuenta)

008 contiene estatus “BD” (Si se cuenta)

Mi resultado  deseado es 3 de acuerdo a la regla.

View solution in original post

4 Replies
ramoncova06
Partner - Specialist III
Partner - Specialist III

esto lo debes de poder hacer con set analysis, algo como

count({<Estatus ={'P', 'I', 'C', 'NP', 'SC'}>}CURP)

rulohx87
Contributor III
Contributor III
Author

Hola Ramon, si pense en un SET ANALYSIS sin embargo, es más complejo que ello.

  1. Es decir si coloco count({<Estatus ={'P', 'I', 'C', 'NP', 'SC'}>}CURP) Lo que me va a traer son 1,346,189 de registros. que esta muy lejos del resultado deseado (24,023).
  2. Tengo la siguiente función COUNT({<estatus = {"B*"}>} CURP) lo que me trae son 49,536 registros que en su estatus contengan una "B" de BAJA. Ahora lo que debo hacer, es otra consulta para excluir, todos aquellos CURP de los 49,536 que contengan 'P', 'I', 'C', 'NP', 'SC'. (Por decirlo así, tengo que hacer un filtrado al resultado)
ramoncova06
Partner - Specialist III
Partner - Specialist III

Si entendí bien tienes curps duplicadas ?

ya intentaste usando una búsqueda avanzada ?

COUNT({<Estatus = {"B*"}, CURP = {"=count({<Estatus ={'P', 'I', 'C', 'NP', 'SC'}>}CURP)=0"}>} CURP)

rulohx87
Contributor III
Contributor III
Author

Vientos amigo,

Acabo de resolver mi problema. Consistia en buscar sobre la misma tabla estatus que fueran diferentes a una clave.

=sum(aggr(if(count({<STATUS={'B*'}>}total <CODE> CODE)=count(total <CODE> CODE),1,0),CODE))

STATUS

CODE

BD

001

BG

002

NP

002

NP

003

C

003

B

004

C

005

NP

006

B

006

P

001

BG

007

B

002

BD

008

REGLA: Obtener el número de codigos que en su estatus contengan una “B”. Siempre que el mismo codigo no contenga un estatus diferente (P,C.NP).

IDEA: Si hacemos una  formula como;  count({<Estatus={“B*”}>}código) obtengo 7. Sin embargo en el resultado, existen códigos que contienen un diferente estatus “P, C, NP”. Que no se deben contabilizar. Como lo son;

001 contiene estatus “BD,P”

002 contiene un status “B, BG,NP”

004 contiene estatus “B” (Si se cuenta)

006 contiene estatus “B,NP”

007 contiene estatus “BG” (Si se cuenta)

008 contiene estatus “BD” (Si se cuenta)

Mi resultado  deseado es 3 de acuerdo a la regla.