Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 ?????
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
Erich, vou fazer os testes e posto o resultado depois !!!
Obrigado pela atenção !!!!
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';
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 !!!!!