Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
qlik_
Creator
Creator

Status de atraso

Boa tarde gente

Preciso montar

esses status

Qtde NFs Dentro do Prazo (expedida em até 1 dia da emissão) /

Atrasado (expedida com 2 ou mais dias após a emissão) /

Pendentes (não expedidas)


Possuo uma tabela fatoromaneio, nela tenho os campos data emissão da NF e data emissão do romaneio,

sendo assim


quero calcular a quantidade de notas, que a data do romaneio é diferente da data de entrega,

se for ate um dia de diferença esta no prazo

se não, esta atrasada.


no script adicionei esse cara


if(date(DT_EMIS_ROMANEIO) > date(DT_EMISSAO_NF),DT_EMIS_ROMANEIO - DT_EMISSAO_NF) AS QTDE_DIAS_ATRASO 

e depois na expressão , montei desta forma:

COUNT({$<TIPO_DADO_NF = {'NF'},CD_UO_NF = {'0015','0199'}, EXISTE_ROMANEIO_1 = {'1'},QTDE_DIAS_ATRASO ={'>=2'}>distinct NR_NF_NF)

mas n esta dando certo....pergunta, consigo dar um Sum na frente do campo Qtde _dias_atraso?

alguém tem alguma ideia mais simples?

1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite.

No script se criar flags que possam conter 0 e 1 para usar no sum não simplificaria?

ex:

if(not isnull(data_romaneio) and data_romaneio - data_emissao) >= 2 , 1,0)   as Atrasada,

if(not isnull(data_romaneio) and data_romaneio - data_emissao) <= 1 , 1,0)  as NoPRazo,

if(isnull(data_romaneio),1,0)                                                                              as NaoDespachada


ai se na expressão der um    sum(Atrasada) viria a qtde de notas que foram despachadas em atraso.

Caso tenha outras regras a considerar, poderiam estar no if  (considerar determinados tipos de notas).


Att,

Alessandro Furtado

furtado@farolbi.com.br

View solution in original post

12 Replies
nicolett_yuri

Me parece que sua lógica esta correta, pode ser algum problema com sintaxe. Você pode disponibilizar um qvw de exemplo para verificarmos?

qlik_
Creator
Creator
Author

olá yuri, o qvw fico complicado, pois tem vários outros indicadores, está muito carregado.

mas basicamente é isto

tabela de romaneios onde tenho os dois campos

Yuri será que na frente do campo QTDE_DIAS_ATRASO, n seria necessário colocar um SUM?

pois estou usando COUNT na frente , pois preciso contar qtde de notas fiscais.

nicolett_yuri

Carla, não é necessário, pois espera-se que o resultado da coluna QTDE_DIAS_ATRASO retorne essa informação consolidada por NF, desta forma a sintaxe QTDE_DIAS_ATRASO = {'>=2'} faria o filtro conforme esperamos.

Você esta utilizando distinct em sua expressão, então existe mais de uma linha de dados para cada Nota Fiscal? Se isso é uma verdade, talvez seja necessário você criar uma tabela para consolidar essa informação por NF.

É possível colocar um exemplo de dados da sua tabela de NF? Pode mascarar algumas informações

qlik_
Creator
Creator
Author

Oi Yuri

Então, como eu trago por item, ele trará dois números de nfs, por isso dou o disctinct .

possuo uma tabela de notas fiscais

e um tabela só de romaneios

onde essa de romaneio eu trago a data de emissão da nota e data que foi emitido o romaneio

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite.

No script se criar flags que possam conter 0 e 1 para usar no sum não simplificaria?

ex:

if(not isnull(data_romaneio) and data_romaneio - data_emissao) >= 2 , 1,0)   as Atrasada,

if(not isnull(data_romaneio) and data_romaneio - data_emissao) <= 1 , 1,0)  as NoPRazo,

if(isnull(data_romaneio),1,0)                                                                              as NaoDespachada


ai se na expressão der um    sum(Atrasada) viria a qtde de notas que foram despachadas em atraso.

Caso tenha outras regras a considerar, poderiam estar no if  (considerar determinados tipos de notas).


Att,

Alessandro Furtado

furtado@farolbi.com.br
qlik_
Creator
Creator
Author

oi Alessandro

boa dica, quando retornar a empresa..vou fazer essa ação

obrigadaa

qlik_
Creator
Creator
Author

Alessando

muito obrigada pela dica...deu certo.

qlik_
Creator
Creator
Author

Alessandro

agora só preciso ajustar a clausula

pq nas minhas tabelas

eu trato por itens

ou seja

Uma nota fiscal tem 10 itens....o certo seria trazer como nota atrasada a quantidade de UMA nota..

porém tras 10,pq ele ta pegando tudo.

Eu faria um distinct no IF?

como posso contornar isso

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa tarde Carla.

Teríamos duas formas (o que me vem a cabeça, mas o pessoal da comunidade pode sugerir outras....).

No script usar um group by

Ex:

left join (Nota)

LOAD

    Chave_Nota,

    if(not isnull(max(data_romaneio)) and max(data_romaneio) - max(data_emissao)) >= 2 , 1,0)   as Atrasada,

    if(not isnull(max(data_romaneio)) and max(data_romaneio) - max(data_emissao)) <= 1 , 1,0)  as NoPRazo,

    if(isnull(max(data_romaneio)),1,0)                                                                              as NaoDespachada

Resident Nota group by Chave_Nota;


ou usar um aggr na expressao


sum(aggr(sum(distinct Atrasada),Chave_Nota))



Veja, se resolver no script, voce tira o peso da expressao, visto que o aggr cria uma tabela virtual para resolver e isto consome recursos......


Att,


Alessandro Furtado

furtado@farolbi.com.br