Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. 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