Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
Xolink1389
Creator
Creator

Cambiar caracter de union '/' por un texto

Hola tengo una consulta,

Realice la unión de dos tablas con el comando &' '& como esta el ejemplo.

Year("Clearing date_AUGDT")&' '&Month("Clearing date_AUGDT") as "Año/Mes Compensado.",

pero al mostrarse en la tabla, hay campos que salen vacíos o mas entendible solo sale ' ' yo quiero que en la tabla en vez de que solo aparezca el 'espacio vacío' aparezca el texto 'sin compensar', solo para los documentos que no se han compensado, en este caso todas las uniones que salen en la tabla, son de documentos que ya se han compensado 

intente con estos comandos dentro del el foro, pero no funcionan porque en realidad el campo no es nulo, porque tiene un caracter en este caso ' ' 

IF(IsnUll(CAJASNETAS), 0, CAJASNETAS) AS CAJAS


 

 

Labels (1)
2 Solutions

Accepted Solutions
RafaelBarrios
Partner - Specialist
Partner - Specialist

 

hola @Xolink1389 


Yo intentaría cambiar el formato de fecha, si no tiene fecha te tendría que devolver nulo

date("Clearing date_AUGDT",'YYYY MMM')) 

pero como quieres llenar los nulos:

If(isnull("Clearing date_AUGDT"),'sin compensar',text(date("Clearing date_AUGDT",'YYYY MMM'))) as nombre_del_campo

 

espero te sirva.

saludos,

 

update….

el monthname() que comenta @QFabian @tambien te tendría que funcionar

View solution in original post

RafaelBarrios
Partner - Specialist
Partner - Specialist

Voy a suponer que los registros sin fecha no tienen nulo si no un valor en blanco.

si pegas un pantallazo del Campos original para ver los posibles valores ayudaría.

mientras, puedes probar quitar los espacios en blanco con un trim y preguntar por la longitud del campo 

len(trim("Clearing date_AUGDT"))>1

algo así 

If(len(trim("Clearing date_AUGDT"))>1,text(date("Clearing date_AUGDT",'YYYY MMM')),'sin compensar') as nombre_del_campo

ojo que cambié el orden de lo que realizará el if y tampoco pude probar la sintaxis.

espero te sirva.

un saludo,

View solution in original post

6 Replies
QFabian
Specialist III
Specialist III

Hola @Xolink1389 , considerando que lo que armas es un periodo, y tomando como supuesto que un documento compensado tiene fecha, podrias usar esto :

if(isnum(monthname("Clearing date_AUGDT")), monthname("Clearing date_AUGDT"), 'sin compensar')

 

QFabian
RafaelBarrios
Partner - Specialist
Partner - Specialist

 

hola @Xolink1389 


Yo intentaría cambiar el formato de fecha, si no tiene fecha te tendría que devolver nulo

date("Clearing date_AUGDT",'YYYY MMM')) 

pero como quieres llenar los nulos:

If(isnull("Clearing date_AUGDT"),'sin compensar',text(date("Clearing date_AUGDT",'YYYY MMM'))) as nombre_del_campo

 

espero te sirva.

saludos,

 

update….

el monthname() que comenta @QFabian @tambien te tendría que funcionar

luiferva
Contributor III
Contributor III

Hola @Xolink1389

Quizas te podria servir este script

If(Isnull(EmptyIsNull([Año/Mes Compensado]))= True(),'Sin Compensar',[Año/Mes Compensado]) as x

 

Xolink1389
Creator
Creator
Author

intente pero me dio error, pregunta es posible usar este tomando en donde se esta cargando la tabla? 

lo puse asi:

Year("Clearing date_AUGDT")&' '&Month("Clearing date_AUGDT") as "Año/Mes Compensado.",
If(isnull("Clearing date_AUGDT"),'sin compensar',text(date("Clearing date_AUGDT",'YYYY MMM'))) as "Año/Mes Compensado.",

Xolink1389
Creator
Creator
Author

lo use asi tal cual, y el codigo lo acepta pero no me motrso el sin compensar te anexo imagen

RafaelBarrios
Partner - Specialist
Partner - Specialist

Voy a suponer que los registros sin fecha no tienen nulo si no un valor en blanco.

si pegas un pantallazo del Campos original para ver los posibles valores ayudaría.

mientras, puedes probar quitar los espacios en blanco con un trim y preguntar por la longitud del campo 

len(trim("Clearing date_AUGDT"))>1

algo así 

If(len(trim("Clearing date_AUGDT"))>1,text(date("Clearing date_AUGDT",'YYYY MMM')),'sin compensar') as nombre_del_campo

ojo que cambié el orden de lo que realizará el if y tampoco pude probar la sintaxis.

espero te sirva.

un saludo,