Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes,
Tengo un campo EST_COB con dos string 'CSP' y 'CCP'.
En script o set analysis quiero saber la forma de contabilizar 1 si solo se encuentra el string 'CSP' y si se encuentran 'CSP' y 'CCP' que el conteo sea 0.
La relacion que busco es 2=0 y 1=1
Gracias!
@uroboros Buenas Tardes!
Ya lo solucione con set analysis. Comparto la resolución para quien lo necesite:
=COUNT
(
{<
MOV={'I'}
>}
DISTINCT SINIESTRO)
-
(COUNT
(
{<
MOV={'I'},
EST_COB={'CSP'},
EST_COB={'CPP'}
>}
DISTINCT SINIESTRO
)
+
(COUNT
(
{<
MOV={'I'},
EST_COB={'CSP'},
EST_COB={'EN_J'}
>}
DISTINCT SINIESTRO
))))
Hola @LSTR , tienes varias opciones, te diré dos.
1. un if en la gráfica, con la condición que dices: if(2=0 and 1=1, sum(),0)
2. Transferir esa condición al Script, de esa manera cuando lo pases a la gráfica harías solo Sum.
Si puedes pasanos más información para poder ayudarte de una mejor manera!
Saludos!
Hola @uroboros !! Gracias por la respuesta. Voy a hacer una explicacion mas completa para ver como me podes ayudar.
Caso1 – Siniestro con una sola cobertura:
Tengo el siniestro 1 con cobertura 001 y estado =”CSP”
Siniestro Cobertura Mov ESTADO_COBERTURA
1 001 I CSP
Ok, entonces cuento todas las cobertura con movimiento “I”(Total=1), y cuento las coberturas con movimiento “I” y estado = “CSP”(Total=1). Entonces 1=1, y este siniestro SI lo cuento como “CSP”
Caso2 – Siniestro con más de una cobertura(2 ó más):
Tengo el siniestro 2 con cobertura “001” y estado =”CSP, y otra cobertura “002” en otro estado distinto.
Siniestro Cobertura Mov EST_COB
2 001 I CSP
2 002 I CPP( ó algún estado distinto de “CSP”)
Ok, entonces como hice para el siniestro “1”, cuento todas las cobertura con movimiento “I”(Total=2), y cuento todas las coberturas con movimiento “I” y estado = “CSP”(Total=1). Entonces tengo que 2=1, y este siniestro NO lo cuento como “CSP”.
Gracias!
Bueno ahora lo leo un poco mejor, tengo un entendimiento más claro de tu situación.
Según lo que interpreto es que estas intentando realizar una especie de marcación.
Siendo así, la primera condición es si Mov = I, Siguiente, es válidar si el estado es CSP
De esta manera lo haría así:
Data:
Load *,
if(MarcaMov = 1 and MarcaEs=1,1,0) as MarcaConteo;
Load
Siniestro,
Cobertura,
Mov,
Est_Cob,
If(Mov='I',1,0) as MarcaMov,
if(EST_COB='CSP',1,0) as MarcaEs
Resident DataOrigin;
Luego le haces conteo a MarcaConteo en tu gráfica y tendrás el resultado que buscas
@uroboros buenas tardes!
Probe de esa manera adaptando el script al mio pero me da un resultado completamente diferente.
Debe ser 0 segun el caso 2. Si tengo una Cobertura con otro ESTADO_COBERTURA que no sea 'CSP'
Caso2 – Siniestro con más de una cobertura(2 ó más):
Tengo el siniestro 2 con cobertura “001” y estado =”CSP, y otra cobertura “002” en otro estado distinto.
Siniestro Cobertura Mov EST_COB
2 001 I CSP
2 002 I CPP( ó algún estado distinto de “CSP”)
Quizas transcribi mal tu script.
Lo deje asi:
Data:
Load *,
if(MarcaMov = 1 and MarcaEs=1,1,0) as MarcaConteo;
Mitabla:
LOAD
(todos los campos),
If(Mov='I',1,0) as MarcaMov,
if(EST_COB='CSP',1,0) as MarcaEs
From MiQVD;
De acuerdo a lo que me estas contando, sería realizar un conteo de los estados, yo harìa algo más o menos de la siguiente manera:
Data:
Load *,
if(MarcaMov = 1 and MarcaEs=1,1,0) as MarcaConteo;
Load
Siniestro,
Cobertura,
Mov,
Est_Cob,
If(Mov='I',1,0) as MarcaMov,
if(EST_COB='CSP',1,0) as MarcaEs
Resident DataOrigin;
left join(Data)
Load
Siniestro,
Cobertura,
Mov,
count(Est_Cob) as MarcaEst_Cob
resident Data
Group by Siniestro,
Cobertura,
Mov;
Y por ultimo le decimos que nos retire los datos que no necesitamos
NoConcatenate
Data2:
Load *
if(MarcaEst_Cob>1,0,MarcaMov) as ConteoDefinitivo
Resident Data;
Drop table Data;
Buenas tardes @uroboros !!! Gracias por la ayuda, pero me trae muchos mas valores de los que deberia. Realmente es un misterio.
Pregunta, en el nuevo script, en base a que campo deberia hacer el conteo?
Gracias!
Por lo que veo, no estamos considerando la cobertura, si para un mismo siniestro hay dos numeros de coberturas diferentes y tiene diferentes campos en ESTADO_COBERTURA, este dato debe ser 0.
@uroboros Buenas Tardes!
Ya lo solucione con set analysis. Comparto la resolución para quien lo necesite:
=COUNT
(
{<
MOV={'I'}
>}
DISTINCT SINIESTRO)
-
(COUNT
(
{<
MOV={'I'},
EST_COB={'CSP'},
EST_COB={'CPP'}
>}
DISTINCT SINIESTRO
)
+
(COUNT
(
{<
MOV={'I'},
EST_COB={'CSP'},
EST_COB={'EN_J'}
>}
DISTINCT SINIESTRO
))))