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: 
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