Skip to main content
Announcements
YOUR OPINION MATTERS! Please take the Qlik Experience survey you received via email. Survey ends June 14.
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Valores Nulos ou Espaços em branco

Bom dia!

Tenho a seguinte tabela e fiz os seguintes testes:

=len(TELEF_PESSOA_T)

=IF(IsNull(TELEF_PESSOA_T),'NULO', 'NÃO É NULO')

Capturar.PNG

Não estou entendendo porque os campos em branco (TELEF_PESSOA_T) estão como não nulos, contando 1 caractere...

Usei o trim no script também para tirar possíveis espaços em branco e as propriedades da tabela estão assim:

Capturar2.PNG

Desde já, obrigada!

Labels (2)
42 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Bom dia Laryssa;

Realizei algumas alterações no script, só não pude testar a carga, pois não tenho os QVDs;

SET ThousandSep='.';

SET DecimalSep=',';

SET MoneyThousandSep='.';

SET MoneyDecimalSep=',';

SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';

SET TimeFormat='hh:mm:ss';

SET DateFormat='DD/MM/YYYY';

SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';

SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';

SET DayNames='seg;ter;qua;qui;sex;sáb;dom';

SET HidePrefix='%SK_';

CHAMADOS: 

LOAD

    COD_EMPRESA AS %SK_EMPRESA, 

    COD_CORPORATIVO_PESSOA_T AS %SK_PESSOA,

    CODIGO_DO_CHAMADO_T,   

    timestamp(DATA_DO_CHAMADO_T) AS DATA_DO_CHAMADO_T, 

    Right(dayname(DATA_DO_CHAMADO_T),4) AS Ano_T, 

    MID(DAYNAME(DATA_DO_CHAMADO_T),4,2) AS Mes_T,

    TIPO_DE_PUBLICO_T,

    PROTOCOLO_ANS_T, 

    MANIFESTACAO_T, 

    GRUPO_MANIFESTACAO_T, 

    TIPO_MANIFESTACAO_T, 

    NM_FUNCIONARIO_ABRIU_T, 

    NOME_FUNCIONARIO_T, 

    AREA_FUNCIONARIO_T, 

    AREA_ABRIU_T, 

    timestamp(DATA_CONCLUSAO_CHAMADO_T) AS DATA_CONCLUSAO_CHAMADO_T, 

    dayname(PREVISAO_RESOLUCAO_T) AS PREVISAO_RESOLUCAO_T, 

    FORMA_CONTATO_T, 

    RAMAL_PESSOA_T,   

    PESS_PESS_NM_PESSOA_T, 

    GRAU_SATISFAÇÃO_T, 

    timestamp(DATA_HORA_ENVIO_PESSOA_T) AS DATA_HORA_ENVIO_PESSOA_T, 

    timestamp(DATA_HORA_RESP_PESSOA_T) AS DATA_HORA_RESP_PESSOA_T

FROM H:\Backup-14022017\QVDSTESTE\TABELAPRINCIPAL.qvd (qvd)  Where COD_EMPRESA = 21;

DIM_PESSOAS:

LOAD

    COD_CORPORATIVO_PESSOA_T AS %SK_PESSOA,

    COD_CORPORATIVO_PESSOA_T,

    If(Concat(Distinct TELEF_PESSOA_T)>1,

      Concat(Distinct TELEF_PESSOA_T, '/')) AS 'TELEF_PESSOA_T'

    Group By COD_CORPORATIVO_PESSOA_T;

LOAD

  COD_CORPORATIVO_PESSOA_T, 

  DDD_PESSOA_T&' '&TELEF_PESSOA_T AS 'TELEF_PESSOA_T'

FROM H:\Backup-14022017\QVDSTESTE\TABELAPRINCIPAL.qvd (qvd) Where Exists(COD_EMPRESA);

DIM_EMPRESAS:

LOAD DISTINCT

  COD_EMPRESA AS %SK_EMPRESA,

  COD_EMPRESA,

  DESC_EMPRESA

FROM

(qvd) Where Exists(COD_EMPRESA);

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Marcio_Campestrini
Specialist
Specialist

Laryssa

Tente mudar o DISTINCT do telefone para o Load inicial no arquivo QVD. No load precedente deixe somente o concat.

Outra coisa, não relacionada ao seu problema: se possível evite o uso do Preceding Load. Eu já havia observado, e depois verifiquei que o rwunderlich‌ também escreveu sobre o assunto (veja aqui), que ele é (pelo menos hoje) mais lento que ler uma tabela em memória. Assim, passe o Preceding Load para um load em tabela normal residente.

Márcio Rodrigo Campestrini
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Não sei porque a minha resposta ficou marcado "sendo moderado"

Então segue em anexo

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Como o Márcio falou, tem como otimizar, me atentei pouco para o seu caso, pois vejo que está iniciando e presei em não aumentar a complexidade nesta fase, porém recomendo observar as boas práticas;

Melhorei mais um pouco o script,

Versão: 2.3

SET ThousandSep='.';   

SET DecimalSep=',';   

SET MoneyThousandSep='.';   

SET MoneyDecimalSep=',';   

SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';   

SET TimeFormat='hh:mm:ss';   

SET DateFormat='DD/MM/YYYY';   

SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';   

SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';   

SET DayNames='seg;ter;qua;qui;sex;sáb;dom';   

SET HidePrefix='%SK_';   

 

temp_CHAMADOS:     

LOAD   

    COD_EMPRESA AS '%SK_EMPRESA',     

    COD_CORPORATIVO_PESSOA_T AS '%SK_PESSOA',   

    CODIGO_DO_CHAMADO_T,       

    timestamp(DATA_DO_CHAMADO_T) AS 'DATA_DO_CHAMADO_T',     

    Right(dayname(DATA_DO_CHAMADO_T),4) AS 'Ano_T',     

    MID(DAYNAME(DATA_DO_CHAMADO_T),4,2) AS 'Mes_T',   

    TIPO_DE_PUBLICO_T,   

    PROTOCOLO_ANS_T,     

    MANIFESTACAO_T,     

    GRUPO_MANIFESTACAO_T,     

    TIPO_MANIFESTACAO_T,     

    NM_FUNCIONARIO_ABRIU_T,     

    NOME_FUNCIONARIO_T,     

    AREA_FUNCIONARIO_T,     

    AREA_ABRIU_T,     

    timestamp(DATA_CONCLUSAO_CHAMADO_T) AS 'DATA_CONCLUSAO_CHAMADO_T',     

    dayname(PREVISAO_RESOLUCAO_T) AS 'PREVISAO_RESOLUCAO_T',     

    FORMA_CONTATO_T,     

    RAMAL_PESSOA_T,       

    PESS_PESS_NM_PESSOA_T,     

    GRAU_SATISFAÇÃO_T,     

    timestamp(DATA_HORA_ENVIO_PESSOA_T) AS 'DATA_HORA_ENVIO_PESSOA_T',     

    timestamp(DATA_HORA_RESP_PESSOA_T) AS 'DATA_HORA_RESP_PESSOA_T', 

    DDD_PESSOA_T&' '&TELEF_PESSOA_T AS 'TELEF_PESSOA_T'  

FROM H:\Backup-14022017\QVDSTESTE\TABELAPRINCIPAL.qvd (qvd)  Where COD_EMPRESA = 21;  

   

CHAMADOS:   

NoConcatenate LOAD 

    [%SK_EMPRESA],     

    [%SK_PESSOA],   

    CODIGO_DO_CHAMADO_T,       

    DATA_DO_CHAMADO_T,     

    Ano_T,     

    Mes_T,   

    TIPO_DE_PUBLICO_T,   

    PROTOCOLO_ANS_T,     

    MANIFESTACAO_T,     

    GRUPO_MANIFESTACAO_T,     

    TIPO_MANIFESTACAO_T,     

    NM_FUNCIONARIO_ABRIU_T,     

    NOME_FUNCIONARIO_T,     

    AREA_FUNCIONARIO_T,     

    AREA_ABRIU_T,     

    DATA_CONCLUSAO_CHAMADO_T,     

    PREVISAO_RESOLUCAO_T,     

    FORMA_CONTATO_T,     

    RAMAL_PESSOA_T,       

    PESS_PESS_NM_PESSOA_T,     

    GRAU_SATISFAÇÃO_T,     

    DATA_HORA_ENVIO_PESSOA_T,     

    DATA_HORA_RESP_PESSOA_T   

Resident temp_CHAMADOS;   

   

DIM_PESSOAS:   

NoConcatenate LOAD 

     [%SK_PESSOA], 

     [%SK_PESSOA] AS 'COD_CORPORATIVO_PESSOA_T',   

     If(Concat(Distinct TELEF_PESSOA_T)>1,   

     Concat(Distinct TELEF_PESSOA_T, '/')) AS 'TELEF_PESSOA_T'   

     Group By [%SK_PESSOA];   

LOAD 

     [%SK_PESSOA], 

     TELEF_PESSOA_T  

Resident temp_CHAMADOS;    

 

Drop Table temp_CHAMADOS; 

   

DIM_EMPRESAS:   

LOAD  

  [%SK_EMPRESA], 

  COD_EMPRESA, 

  DESC_EMPRESA  

Where Exists([%SK_EMPRESA]); 

LOAD DISTINCT 

  COD_EMPRESA AS '%SK_EMPRESA', 

  COD_EMPRESA, 

  DESC_EMPRESA 

FROM  (qvd);

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Novamente, a mensagem acima sendo moderado rsrs;

Segue em anexo, script mais otimizado, porém por priori não aumentei a complexidade para o seu caso, pois vejo que é iniciante, porém recomendo observar as boas práticas como mencionado pelo Márcio. A modelagem também poderia ser no modelo estrela.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

Mario, irei testar.

Dou um feedback hoje!

Sim, sou iniciante rs muito que aprender!

Mais uma vez, obrigada

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Laryssa, fiz uma pequena correção;

O Distinct tem que ficar de fato dentro do Concat neste caso para não repetir os registros de telefone iguais no agrupamentos

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Marcio_Campestrini
Specialist
Specialist

Bom dia Laryssa

Conseguiu resolver o seu problema?

Se sim, marque a resposta final como correta para nos ajudar a manter a comunidade organizada.

Márcio Rodrigo Campestrini
Not applicable
Author

Boa tarde Mario,

desculpe a demora da resposta.

Testei o que você me enviou e deu o seguinte erro: Campo não encontrado - <%SK_EMPRESA> .

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Laryssa,

O erro foi na dimensão EMPRESA;

Segue correção em anexo;

Também vou editar o script acima para não precisar aguardar aprovação do moderador.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti