Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal,
Ainda sou meio atrapalhado no Set Analysis, estou com um problema e agradeceria a ajuda dos colegas, acredito que seja muito tranquilo de fazer, mas não estou conseguindo trazer a informação conforme a necessidade, segue abaixo a situação:
tenho um objeto tabela simples que tem varias colunas, na coluna "cadastro" eu faço uma contagem de todos os registros conforme um periodo e se apresenta assim o resultado:
Cadastros:
10
dentro da programação eu faço desta maneira:
num(count({<[Classe Prospecção Clientes]={'Médico Oftalmologista'}>}DISTINCT [Registro Prospecção Clientes]),'#.##0')
Só que agora eu preciso adicionar um filtro nessa contagem conforme seleção do usuario:
o filtro e outro objeto:
este e o campo que vem do documento: "Classe Prospecção Clientes"
Como nao precisava de filtro antes, eu passava já uma classificação, mas agora mudou, existem mais classificações.
Acredito que no caso caso eu preciso de uma variável conforme a escolha no item acima, mas não sei como setar essa variável e colocar ali no código.
Agradeço a ajuda.
Luciano,
No caso, a tabela de cadastro é aonde fica registros de médicos novos e óticas novas., não é uma tabela de classes.
Se eu nomeio para os dois ficarem Classificação Cliente da um erro:
Foram detectados loops na estrutura de sua base de dados. Isto pode causar resultados ambíguos e deve ser evitado. Loop(s) serão interrompidos, se quaisquer tabelas forem configuradas como parcialmente desconectadas.
Se coloco Classe Prospecção Clientes não da esse erro mas carrega só os dados da segunda tabela, com apenas 2 classes.
Marcio, se entendi bem a segunda tabela ou não têm clientes e você não deve carregar essa dimensão, ou você têm duas tabelas fatos.
Qual a chave de ligação entre as duas tabelas? Se forem duas fatos você terá que concatenar ao invés de fazer o left join.
Precisamos que você entenda e explique melhor os dados.
Luciano,
Não consigo disponibilizar aqui uma parte do documento. Vou colocar em anexo como está a estrutura dentro de cada aba
tenho 2 tabelas:
tabela 1
Ponto visitação = armazena toda a informação de visitas realizadas em clientes, nesta tabela existe as seguintes
classificações:
Cadeia |
Laboratório |
Médico Oftalmologista |
Ótica Independente |
Rede |
tabela 2
Prospecção Clientes: armazena toda a informação cadastramento de novos clientes, nesta tabela existe as seguintes
classificações:
Médico Oftalmologista |
Ótica Independente |
tenho um tabela que faz a contagem disso:
Divulgador | Equipe | Visitas | Cadastros | Visitas + Cadastros | Visitas + Cadastros Médicos | Visitas + Cadastros Óticas |
marcio | rs | 5 | 1 | 6 | 1 | 1 |
antes eu não precisava passar filtro: fazia contagem geral por dia
agora coloquei na tela um objeto de filtro, para o clientes escolher qual classificação ele quer ver os totais:
Quando clicar em cadeia ( exemplo) deve vir assim:
Divulgador | Equipe | Visitas | Cadastros | Visitas + Cadastros | Visitas + Cadastros Médicos | Visitas + Cadastros Óticas |
marcio | rs | 1 | 0 | 1 | 0 | 0 |
O campo Visitas vem 1 porque so houve visita em um cliente com essa classificação
O campo Cadastro vem 0 porque nao houve cadastramento de clientes novos com essa classificação
o campo visitas + cadastros e a soma dos dois entao vem 1
O campo Visitas + Cadastros Médicos vem 0 porque e um campo chumbado nesta classificação
O campo Visitas + Cadastros Óticas vem 0 porque e um campo chumbado nesta classificação
Hoje esta assim cada calculo:
Campo Visitas:
=num(if(StatusVisita <> 2, count(DISTINCT [Data Início tmp]) - count(StatusVisitaJustificada),),'#.##0')
Campo Cadastros:
num(count( DISTINCT [Registro Prospecção Clientes]),'#.##0')
Campo Visitas + Cadastros:
=num(if(StatusVisita <> 2, count(DISTINCT [Data Início tmp]) - count(StatusVisitaJustificada),) + count(DISTINCT([Registro Prospecção Clientes])),'#.##0')
Campo Visitas + Cadastros Médicos:
=num(count({<StatusVisita=p()-{2}, [Classificação Cliente]={'Médico Oftalmologista'}>} DISTINCT [Data Início tmp]) - count({<StatusVisita=p()-{2}, [Classificação Cliente]={'Médico Oftalmologista'}>} StatusVisitaJustificada),'#.##0')
+
num(count({<[Classe Prospecção Clientes]={'Médico Oftalmologista'}>}DISTINCT [Registro Prospecção Clientes]),'#.##0')
Campo Visitas + Cadastros Óticas:
=num(num(if(StatusVisita <> 2, count(DISTINCT [Data Início tmp]) - count(StatusVisitaJustificada),),'#.##0')
-
num(count({<StatusVisita=p()-{2}, [Classificação Cliente]={'Médico Oftalmologista'}>} DISTINCT [Data Início tmp]) - count({<StatusVisita=p()-{2}, [Classificação Cliente]={'Médico Oftalmologista'}>} StatusVisitaJustificada),'#.##0')
+
num(count({<[Classe Prospecção Clientes]={'Ótica Independente'}>}distinct([Registro Prospecção Clientes])) ,'#.##0'))
Espero que tenha ficado melhor a explicação desta maneira.
Luciano, esqueci de frisar que nas duas tabelas existe o campo classe aonde e armazenada as letras correspondentes a classificação:
applymap('MapTipo',classe) as [Classificação Cliente] na 1 tabela
applymap('MapTipo',classe) as [Classe Prospecção Clientes] na 2 tabela
[MapTipo]:
mapping LOAD * INLINE [
Cod, Desc
C, Cadeia
L, Laboratório
M, Médico Oftalmologista
O, Ótica Independente
R, Rede
];
Está um pouco confuso, mas ficou claro que são duas fatos.
Pelo que entendi Cadastro na verdade é cadastramento e trata-se de um dado mensurável.
Você terá que fazer mais ou menos isso:
Fato:
Load
'Ponto visitação' as Origem,
Campo1,
Campo2,
applymap('MapTipo',classe) as [Classificação Cliente],
outros campos
From Ponto visitação
Concatenate(Fato)
Load
'Prospecção Clientes' as Origem,
Campo1,
Campo2,
applymap('MapTipo',classe) as [Classificação Cliente],
outros campos
From Prospecção Clientes
Desta forma você terá uma só tabela com Classificação única e poderá isolar os dados através do campo Origem.
Luciano,
Vou testar assim.
Desde ja te agradeço imensamente pela ajuda.
Luciano, não deu certo, acredito que não estou conseguindo montar desde jeito que tu falou, vou estudar mais a situação, acho que não seja difícil.
O problema é que estou trabalhando muito pouco com o qlikview e ainda não tenho muita experiência, sendo assim a coisa fica um pouco mais complicada, mas te agradeço imensamente a tua ajuda.
Avinash ,
It did not work , but I will give one more studied the situation.
I thank you immensely help, thanks.
Cesar,
Não deu certo, mas vou dar mais uma estudada na situação.
Te agradeço imensamente a ajuda, valeu meu amigo.
Achei que tinha funcionado.
Mas a ideia é essa. Vai exigir o trabalho braçal pq o exemplo era simplista.
Abço.