Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Galera, sou novo no Qlik e estou aprendendo, mas cheguei a um problema que não estou conseguindo resolver, que é o seguinte:
Tenho uma coluna chamada Atendimento e outra com Itens_Atendimento com os itens usados no atendimento.
Exemplo:
Atendimento | Itens_Atendimento |
10 | 10102019 |
10 | 50044426 |
18 | 10102019 |
18 | 60000955 |
Agora preciso classificar esses atendimentos de acordo com a regra:
Quando o atendimento conter o item 10102019 classificar com Cirúrgico
Quando o atendimento conter o item 10102019 e o 60000955 classificar com Clínico
O resultado deve ser a quantidade de Cirúrgico e Clínico, exemplo:
Contagem Cirúrgico | Contagem Clínico |
44 | 38 |
Bom dia,
Acredito que tenha entendido a sua necessidade.
Verifique se assim resolve seu problema. Em anexo o exemplo.
TABELA:
LOAD * INLINE
[
Atendimento, Itens_Atendimento
10, 10102019
10, 50044426
18, 10102019
18, 60000955
];
LEFT JOIN (TABELA)
LOAD Atendimento,
Count(If(Itens_Atendimento ='60000955',Itens_Atendimento)) AS TESTE
RESIDENT TABELA
GROUP BY Atendimento;
LEFT JOIN (TABELA)
LOAD Atendimento,
If(TESTE>0,'Clinico', 'Cirurgico') AS TIPO_ATEND
RESIDENT TABELA;
Olá Allan!!
Já experimentou fazer com Set Analysis em cada medida?
Ficaria dessa forma:
count({<itens_atendimento={10102019}>}atendimento)
Assim ele contaria apenas o atendimento que contem este item.
At.
Rodrigo Ramos Rocha
Bom dia Amigo,
Dois pontos que precisamos ver. Primeiro seu modelo de dados trás a tabela desta forma mesmo com um valor de procedimentos realizados por item da maneira que você mostrou ai?
Outra coisa, não sei se entendi direito más o diz que quer definir como clinico quando o item for 10102019 e o 60000955 juntos, correto? se for pelo que mostrou ai de seus dados não á como definir que os itens foram feitos ao mesmo tempo.
Caso eu apenas tenho entendido errado e vc queira apenas somar os atendimentos nos dois itens juntos, você pode criar um KPI com a seguinte expressão para determinar o numero de clínicos e retirando o '60000955' você obterá o numero de cirúrgicos, caso eu tenha entendido correto no que disse acima terremos que fazer de outra forma.
sum({<Itens_Atendimento={'10102019','60000955'}>}Atendimento) |
Olá Rodrigo,
Porém quando ele conter o item 10102019 e o 60000955 ao mesmo tempo ele deve classificar como clínico, então fiz o seguinte:
Count(DISTINCT{<itens_atendimento={'60000955','10102019'}>}atendimento)
Seguindo o mesmo exemplo:
Atendimento | Itens_Atendimento |
10 | 10102019 |
10 | 50044426 |
18 | 10102019 |
18 | 60000955 |
Ele trouxe tanto o atendimento 10, como o 18 como clínico. Oque eu precisava era que apenas o atendimento 18 fosse classificado com clínico, pois teve o 10102019 e 60000955 juntos.
Olá Rafa,
O exemplo demostrado é exatamente igual a tabela. Sobre a segunda pergunta, identificamos que o item 10102019 e o 60000955 foram feitos juntos pois o número de atendimento é igual.
Então seguindo no mesmo exemplo:
Atendimento | Itens_Atendimento |
10 | 10102019 |
10 | 50044426 |
18 | 10102019 |
18 | 60000955 |
No atendimento 18 ele fez o item 10102019 e o item 60000955, sendo assim ele é clínico.
No atendimento 10 ele fez o item 10102019 e não fez o 60000955, sendo assim ele é cirúrgico.
Certo, então o Atendimento é o "ID" da sua tabela, tinha entendido que era o numero de atendimentos realizados.
Não sei como é o critério para determinar o que é clinico se é apena os itens 6000955 ou se pode ter outras combinações alem dessa que deu de exemplo.
Como nesse exemplo que deu o que vai determina o tipo do atendimento é o itens 60000955 vc pode criar um campo para marcar os itens como clinico ou cirúrgico, marcando o 60000955 como clinico e realizando um
Cont({<Tipo={'clinico'}>} distinct Atendimento)
No caso desse exemplo a quantidade de atendimento clinico seria 1, pois apenas no atendimento 18 aparece o item 60000955.
para criar o campo ficaria algo assim:
T1:
Load*Inline
[Atendimento, Itens_Atendimento
10, 10102019
10, 50044426
18, 10102019
18, 60000955]
(delimiter is ',');
Join Load
*,
if(Itens_Atendimento ='60000955','clinico','cirúrgico') as Tipo
Resident T1;
Olá Allan!
Nesse caso você pode somar os dois count.
Tente dessa maneira:
Count(DISTINCT{<itens_atendimento={'60000955'}>}atendimento) + Count(DISTINCT{<itens_atendimento={'10102019'}>}atendimento)
Rodrigo Ramos Rocha
Rafa, O atendimento 18 apenas ele seria clinico e apenas o 10 seria cirúrgico.
No momento o exemplo esta retornando assim:
Cirúrgico | 2 |
Clinico | 1 |
Deveria retornar assim:
Cirurgico | 1 |
Clinico | 1 |
Obrigado pela ajuda até então!
Rodrigo, desta maneira ele conta todos os atendimentos com 60000955 e todos com 10102019.
Ele retorna 2 para clinico e 1 para cirúrgico.
Deveria contar 1 para clinico e 1 para cirúrgico
Bom dia,
Acredito que tenha entendido a sua necessidade.
Verifique se assim resolve seu problema. Em anexo o exemplo.
TABELA:
LOAD * INLINE
[
Atendimento, Itens_Atendimento
10, 10102019
10, 50044426
18, 10102019
18, 60000955
];
LEFT JOIN (TABELA)
LOAD Atendimento,
Count(If(Itens_Atendimento ='60000955',Itens_Atendimento)) AS TESTE
RESIDENT TABELA
GROUP BY Atendimento;
LEFT JOIN (TABELA)
LOAD Atendimento,
If(TESTE>0,'Clinico', 'Cirurgico') AS TIPO_ATEND
RESIDENT TABELA;