Qlik Community

Brasil

cancel
Showing results for 
Search instead for 
Did you mean: 
LeoSeixas
Contributor
Contributor

Para cada registro de uma tabela, tenho que varrer outra tabela.

Olá Pessoal, sou novato na comunidade e iniciei os trabalhos com Qlikview há uns 6 meses somente.

Tenho certeza que minha dúvida é básica , mas para o meu conhecimento atual está um pouco complexa pra mim.

Tenho duas tabelas, uma com todas as demandas e outras com as etapas. Mais ou menos algo como abaixo:

Demanda:

LeoSeixas_0-1596212415408.png

A tabela de demandas já está carregada previamente. 

Etapas:

LeoSeixas_1-1596212468206.png

 

Eu preciso pra cada demanda_id ler esses quatros registros (sempre serão 4 registros) e avaliar o campo STATE (ultimo campo) na condições abaixo:

Se tiver tudo como NOVO, tenho que criar um campo ETAPA com o conteúdo "NÃO FORMALIZADO"

Se tiver tudo como PRONTO, tenho que criar um campo ETAPA com o conteúdo "CONCLUÍDO"

Os registros que estiverem com "Em Desenvolvimento" tenho que pegar o conteúdo do campo ARVORE_PROJETO_GS_NAME (se tiver mais de um, como no exemplo acima, tenho que concatenar) e criar o  um campo ETAPA com esse conteúdo.

 

Muito obrigado

Leo Seixas

2 Replies
TiagoCardoso
Creator II
Creator II

Olá, boa tarde.

O trecho de código abaixo você pode utilizar no script de carga, na tabela em que exista o campo, para criar esse novo campo com esses parâmetros que você quer.

 

TABELA:

LOAD

   [ Seus campos normalmente aqui],

  ARVORE_PROJETO_GS_STATE,

   IF(ARVORE_PROJETO_GS_STATE = 'Novo', 'Não Formalizado',

      IF(ARVORE_PROJETO_GS_STATE = 'Pronto', 'Concluído', 'Em Desenvolvimento'))   AS ETAPA

FROM ....;

Fiz dois IFs aninhados para tratar os valores quando forem = 'Novo', preencher o campo ETAPA com 'Não Formalizado,

Quando for 'Pronto', preencher o campo ETAPA com 'Concluído', e como sobrou aparentemente o 'Em Desenvolvimento' por último e você não pediu nada, apenas repliquei o valor para não ficar sem tratamento algum e cair como nulo dento do campo ETAPA.

Abaixo, link da documentação do IF(), que pode ser usado em gráfico e em script.

https://help.qlik.com/pt-BR/sense/June2020/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFun...

LeoSeixas
Contributor
Contributor
Author

Tiago, obrigado pelo seu retorno.

a utilização do IF certamente vai ser fundamental mas acho que o meu problema ainda é maior. 

Para eu definir que o projeto está "Não formalizado" , todos os 4 registros deverão está com o campo STATE = "Novo".

A mesmo coisa para "Concluido", todos os 4 registros deverão está com o campo STATE = "Pronto".

Se um (ou mais campos)  dos campos estiver com status "Em desenvolvimento" , tenho que pegar o campo NAME e usar no novo campos ETAPA. Caso tenha mais de um , terei que concatenar .

 

Acho que terei que usar um FOR EACH, FOR, WHILE, ou algo do gênero, não?

 

muito obrigado pela ajuda,

Leo