Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá pessoal sou novato no Qlik,
estou com uma dificuldade de seleção dos dados no script de carregamento de dados..
Eu preciso carregar apenas dados nas seguintes condições:
1 - Que o campo TIPO seja ''Solicitação de informação''
2 - Que o campo STATUS seja tudo, exceto ''cancelada''
3 - Respondidas em 2021, ou que ainda não tenha sido respondida(ou seja , campo resposta nulo)
Eu consigo gerar o carregamento com as seguintes condições :
1 e 2 acima + data de resposta partir de 2021( excluindo os sem resposta)
1 e 2 acima + sem resposta (excluindo os atendidos em 2021)
Porém não consegui gerar com as condições 1 e 2 acima ao mesmo tempo com a união dos critérios de data.
Eu tentei usar o comando abaixo:
where
Demanda.Tipo = 'Solicitação de informação'
and not
[Demanda.Status]= 'Cancelada'
and
len(trim([Demanda.Data da Resposta])) = 0 or
[Demanda.Data da Resposta]>= '2020-12-31'
Me parece que nos comandos de data acima, ele ignora as 2 primeiras condições (do Tipo e Status) e traz tudo que tiver atendimento em 2021 ou ainda sem resposta (nulo).
Alguém saberia me dar uma luz?
Obrigado!
talvez seja útil para outros colegas, consegui chegar na solução para o problema da data...
o campo data foi tratado da forma abaixo, puxando os 4 primeiros caracteres (função LEFT) que são o ano da resposta
WHERE
(LEFT([Demanda.Data da Resposta],4) > '2020' OR ISNULL([Demanda.Data da Resposta]))
Bom dia se está fazendo um load o where não aceita muitas funções de igualdade como no sql por exemplo.
para não ler uma linha de campo especifica você precisa usar o wildmatch, dessa forma
where
Demanda.Tipo = 'Solicitação de informação'
and wildmatch([Demanda.Status], 'Cancelada')=0
wildmatch()=0 informa que não será lida a linha dentro da função
Bom dia nobre,
Vamos lá. Usando o teu script exemplo e o alterando para atender à tua necessidade:
where
Demanda.Tipo = 'Solicitação de informação'
and not
[Demanda.Status]= 'Cancelada'
and
IsNull([Demanda.Data da Resposta]) or
Year([Demanda.Data da Resposta])>= 2020
Abs e Sucesso
Olá Rafa Martins,
Eu consegui fazer as 2 primeiras cláusulas simultâneas . A minha dificuldade é juntar ela com a 3a clausula de data da resposta (atendidas em 2021 ou sem atendimento)
No esquema abaixo , acho que fica mais fácil de atender. As 3 primeiras linhas não atendem os 3 critérios simultaneamente(o que não atende pintei de vermelho) e quero que sejam descartadas.
TIPO STATUS DATA RESPOSTA Carregar ?
Solicitação de informação Atendida 01/12/2020 NAO
Solicitação de informação Cancelada - NAO
Reclamação Atendida 01/03/2021 NAO
Solicitação de informação Atendida 01/02/2021 SIM
Solicitação de informação Em atendimento - SIM
Será que consigo carregar dessa forma?
Olá Thiago,
tentei conforme a sua sugestão, mas o Load trouxe apenas as demandas sem resposta (valor nulo).
Solicitação de informação + Todos Status, exceto cancelada + sem resposta
Não considerou as que possuem resposta em 2021, que seria:
Solicitação de informação + Todos Status, exceto cancelada + Resposta em 2021
Eu simulei carregar somente as com resposta em 2021, da seguinte forma
where
Demanda.Tipo = 'Solicitação de informação'
and not
[Demanda.Status]= 'Cancelada'
and
Year([Demanda.Data da Resposta])>= 2020
E o Qlik trouxe nenhum resultado. Será que falta algum ajuste no código, no trecho que indica que respostas em 2021 ?
Bem, não como está formatado teu campo data de resposta, portanto faça o seguinte:
Para carregar dados de 2021:
Date(Num([Data Abast]),'YYYY')='2021'
Também retornou nenhum resultado dessa forma.
A fonte de dados que estou usando é um arquivo QVD.
Quando eu faço um carregamento de dados desse arquivo, é mostrado o seguinte formato de data , na Seção Gerada automaticamente.
Timestamp(Timestamp#([Demanda.Data da Resposta], 'YYYY-MM-DDThh:mm:ss.fffK') ) AS [Demanda.Data da Resposta],
talvez seja útil para outros colegas, consegui chegar na solução para o problema da data...
o campo data foi tratado da forma abaixo, puxando os 4 primeiros caracteres (função LEFT) que são o ano da resposta
WHERE
(LEFT([Demanda.Data da Resposta],4) > '2020' OR ISNULL([Demanda.Data da Resposta]))