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: 
Not applicable

Como negar uma data no script ao ler um arquivo qvd.

Pessoal,

Preciso ler uma arquivo qvd e negar uma data. No entanto, estou encontranto algumas dificuldades. Alguem poderia me dar uma dica de como posso fazer isso?

Em uma das bases o formato é o tradicional: 15/09/2013 por exemplo. Nesse caso em uma base com um ano de informação qual o codigo eu devo inserir no script para negar um mes? Se tenho de janeiro a setembro de 2013 como faço para negar setembro por exemplo?

Um outro problema que tenho, e que em uma das bases a data esta quebrada por campos. Tenho um campo para dia, outro para mes e outro para ano. Como devo proceder para negar nesse caso tabem?


Agradeço a ajuda de todos.

1 Solution

Accepted Solutions
rphpacheco
Creator III
Creator III

Bom, podes colocar separadamente, Ex:
Where
Date(MakeDate(Ano,Mes),'MMM/YYYY') <> 'set/2013'
And Date(MakeDate(Ano,Mes),'MMM/YYYY') <> 'out/2013';

Ou fazer um load do load pegando o campo já consolidado e incluir um match, ex:

Where Not Match([Mês e Ano],'jan/2013','fev/2013') ;

Dê uma olhada nas duas opções no QVW exemplo que está anexo.

Para a segunda pergunta, se o campo de data for padrão, trazendo apenas o primeiro dia do mês + ano, aí você pode usar o Not Match(Data,'01/09/2013','01/10/2013'). Mas certifique-se de como está vindo esta data da sua base

Ah, não esquece de marcar a resposta como certa

Abraços!

View solution in original post

7 Replies
rphpacheco
Creator III
Creator III

Utilize a cláusula Where para fazer esta negação

EX:

Load

*

From ...

Where Mês <> 'Set';

Not applicable
Author

Raphel,

Para bases com mais de um ano de informação, devo colocar o ano tambem?

rphpacheco
Creator III
Creator III

Sim, caso contrário ele irá retirar todos os meses ('Set') da seleção.

Abraço!

Not applicable
Author

Raphael,

seria o codigo abaixo? dessa forma ele esta detonando todo o ano de 2013.

[MES ENTRADA],

    
[ANO ENTRADA],

    
PLATAFORMA,

    
Mes,

    
Ano,

    
COD_FILIAL,

    
FILIAL_OU_CD,

    
TIPO_FILIAL,

    
MIX2,

    
MIX,

    
LINHA,

    
FORNECEDOR,

    
FABRICANTE,

    
COD_PRODUTO,

    
PRODUTO,

    
QTDE_COMPRA,

    
VLR_LIQUIDO

FROM

C:\Users\joao.silva\Desktop\compras\Nova_Base\ME\ME2.qvd

(
qvd)



Where Mes <> 9 and Ano <> 2013;

rphpacheco
Creator III
Creator III

Crie um campo desta forma:

Date(MakeDate(Ano, Mes),'MMM/YYYY')                    as [Mês e Ano]

No seu Where você coloca assim:

Where

     Date(MakeDate(Ano, Mes),'MMM/YYYY') <> 'set/2013';

Not applicable
Author

Raphael,

funcionou cara, perfeito.

So mais duas perguntinhas. rs

Para eu colocar um periodo de dois meses ou mais como eu poderia fazer? Tentei colocar um and e nao funcionaou.

Outra coisa, para um campo que tenha o formato padrao, '01/10/2013' por exemplo faria da mesma forma?

Valeu cara e desculpe o incomodo.

rphpacheco
Creator III
Creator III

Bom, podes colocar separadamente, Ex:
Where
Date(MakeDate(Ano,Mes),'MMM/YYYY') <> 'set/2013'
And Date(MakeDate(Ano,Mes),'MMM/YYYY') <> 'out/2013';

Ou fazer um load do load pegando o campo já consolidado e incluir um match, ex:

Where Not Match([Mês e Ano],'jan/2013','fev/2013') ;

Dê uma olhada nas duas opções no QVW exemplo que está anexo.

Para a segunda pergunta, se o campo de data for padrão, trazendo apenas o primeiro dia do mês + ano, aí você pode usar o Not Match(Data,'01/09/2013','01/10/2013'). Mas certifique-se de como está vindo esta data da sua base

Ah, não esquece de marcar a resposta como certa

Abraços!