Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
user_rba
Contributor

Concatenate - como contar os campos corretamente ??????

Pessoal, olha eu aqui outra vez, seguinte:

concatenei duas tabelas, ATENDIMENTO e ANDAMENTO, cada uma das tabelas possuem campos distintos, quando fiz o concatenate, criei um campo chamado FONTE, onde digo se é ATENDIMENTO ou ANDAMENTO, bom agora fiz um load para dizer em cada andamento qual deles é o ultimo, então criei um campo ULTIMO_ANDAMENTO, onde por padrão é NÃO, e o ultimo fica como SIM, fiz isso fazendo um load na tabela ordenando de forma descendente, ok ate aqui esta tudo tranquilo.

o problema começa agora, tipo, as totalizações estão me dando problema, tipo tenho as tabelas abaixo e seu campos (alguns apenas para nao me alongar ainda mais aqui....):

ATENDIMENTO:

             Campos: NUMERO, ABERTURA, HORA, DESPACHO, CLIENTE, APLICATIVO

ANDAMENTO   :

             Campos: NUMERO, SEQUENCIA, DATA, HORA, USUARIO_ORIGEM, USUARIO_DESTINO, ULTIMO_ANDAMENTO

com o comando usado no meu caso concatenate, minha tabela ficou assim:

ATENDIMENTO: 

            Campos: NUMERO, ABERTURA, HORA, DESPACHO, CLIENTE, APLICATIVO, SEQUENCIA, USUARIO_ORIGEM, USUARIO_DESTINO,                                     ULTIMO_ANDAMENTO, FONTE

usando as dimensões: USUARIO_DESTINO, SETOR_DESTINO e a expressão: Count({<ULTIMO_ANDAMENTO={SIM}>}, NUMERO)

consigo a totalização correta dos dados.

O MEU PROBLEMA, esta quando uso como dimensão o campo: CLIENTE e/ou APLICATIVO, a função não me retorna nada, percebi que o problema pelo jeito é a FONTE, mas não consegui resolver, alguem pode me dar uma ajudinha ou idéia de como resolver isso ?????

Tags (1)
4 Replies
erich_shiino
Honored Contributor

Concatenate - como contar os campos corretamente ??????

Jackson,

No seu caso, quando você força o ULTIMO_ANDAMENTO=SIM, está implicitamente forçando a contagem do campo número apenas no bloco que veio da tabela andamento.

Como os campos CLIENTE e APLICATIVO só fazem parte do bloco ATENDIMENTO, não há nenhum resultado para os valores nesta dimensão.

Quer dizer, não existe o conceito de último andamento para cliente ou aplicativo, pois este critério só foi definido para o ANDAMENTO.

Talvez, nestes casos, você poderia usar uma expressão sem esta condição:

Count( NUMERO)

ou  forçar que todos os atendimentos sejam o último andamento

ATENDIMENTO:

LOAD NUMERO, ABERTURA, HORA, DESPACHO, 'SIM' AS  ULTIMO_ANDAMENTO

FROM...

Espero ter ajudado,

Erich

user_rba
Contributor

Concatenate - como contar os campos corretamente ??????

Erich, vou fazer os testes e posto o resultado depois !!!

Obrigado pela atenção !!!!  

user_rba
Contributor

Concatenate - como contar os campos corretamente ??????

Erich, fiz da forma descrita abaixo, e consegui chegar no resultado que eu queria, deu trabalho mais deu certo !!! só não sei se apenas fazendo o que você disse conseguiria, pois não testei ainda, mas de qualquer forma valeu como experiencia por enquanto !!!!

1 - Fiz um load resident somente nos campos da tabela de Atendimentos.

2 - Fiz um join com os campos da tabela de Andamentos.

3 - Tive que criar varios load's, para as tabelas de dimensão, mas tudo bem.

4 - Na expressão quando vou contar o campo quantidade para Setor que é amarrado ao usuario_destino, da tabela de andamentos, eu testo se o o campo IDTIPO_ATENDIMENTO_FINAL  é maior que zero, uma vez que esse campo é da tabela de Atendimentos.

Com isso o resultado é o esperado e consigo calcular todas as dimensoes independente se o campo é da tabela Atendimento ou Andamento.

O Script de Load que fiz é esse ai, só trago os campos que serão as dimensões vamos dizer assim.

FINAL_ATENDIMENTO:

LOAD

     %KEY_ATENDIMENTO AS IDATENDIMENTO_FINAL,

     [ID_APLICATIVO] AS IDAPLICATIVO_FINAL,

     [ID_CLIENTE] AS IDCLIENTE_FINAL,

     [IDTIPO_ATENDIMENTO] AS IDTIPO_ATENDIMENTO_FINAL

RESIDENT ATENDIMENTO;

JOIN

LOAD

     %KEY_ATENDIMENTO AS IDATENDIMENTO_FINAL,

     [IDUSUARIO_DESTINO] AS IDUSUARIO_FINAL,

     '1' AS QUANTIDADE

RESIDENT ATENDIMENTO

WHERE ULTIMO_ANDAMENTO = 'SIM';

user_rba
Contributor

Concatenate - como contar os campos corretamente ??????

QVW_ATENDIMENTO.png

Galera to postando a imagem mais para mostrar onde consegui chegar, pode parecer pouca coisa mais, como esta é praticamente minha primeiro aplicação, estou satisfeito !!!!!