Skip to main content
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!