Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Tarde,
Pessoal, precisaria adicionar um calendário onde Eu possa consultar os documentos por data e que de acordo com esse filtro possa ter em 3 colunas o último preço, penultimo preço e antepenultimo.
A idéia é poder auditar diariamente a evolução do preço de compra se teve aumento ou redução com relação ao ultimo preço com o histórico das outras 2 últimas compras.
No exemplo abaixo, hoje dia 18/09/2014 estariamos analisando o que entrou de nota fiscal ontem e analisar se nos últimos 3 preços de compras houve vairação.
Anexo segue o qvw caso alguem possa me ajudar.
att,
André Tonini
Boa noite.
Pelo o que entendi o resultado deveria ser o abaixo como exemplo?
Código Produto | Data Entrada | Nº Nota Fiscal | Empresa | Preço Ultima Compra | Preço Penultima | Preço AntePenultima |
---|---|---|---|---|---|---|
3058 | 07/02/2014 | 73305 | 1 | 20,23 | 0,00 | 0,00 |
3058 | 05/03/2014 | 28894 | 1 | 19,15 | 20,23 | 0,00 |
3058 | 08/04/2014 | 29723 | 1 | 18,11 | 19,15 | 20,23 |
3058 | 10/06/2014 | 30772 | 1 | 18,11 | 18,11 | 19,15 |
3058 | 24/06/2014 | 31187 | 1 | 17,56 | 18,11 | 18,11 |
3058 | 03/07/2014 | 31352 | 1 | 17,56 | 17,56 | 18,11 |
3058 | 28/07/2014 | 80422 | 1 | 17,72 | 17,56 | 17,56 |
3058 | 07/08/2014 | 32170 | 1 | 17,72 | 17,72 | 17,56 |
3058 | 14/08/2014 | 32359 | 1 | 17,72 | 17,72 | 17,72 |
Se for, basta usar o seguinte codigo abaixo do seu
left join (PRODUTOS_MOVIMENTOS_F)
add LOAD
MOV_DOCUMENTO,
PRO_CODIGO,
MOV_DATA,
if(PRO_CODIGO = Previous(PRO_CODIGO),Previous(MOV_CUSTOFISCAL)) as Penultimo,
if(PRO_CODIGO = Previous(Previous(PRO_CODIGO)),Previous(Previous(MOV_CUSTOFISCAL))) as AntePenultimo
Resident PRODUTOS_MOVIMENTOS_F Order by PRO_CODIGO,DATA_MOV;
Att,
Alessandro Furtado
André, para fazer isso, basta você colocar em variáveis as datas e utiliza-las em set analysis nas expressões.
Exemplo:
SET vDataUltima = =Data;
SET vDataPenultima = Date(Data-1, 'DD/MM/YYYY');
SET vDataAntiPenultima = Date(Data-2, 'DD/MM/YYYY');
SUM({$<Data = {"$(vDataPenultima )"} >} VALOR)
SUM({$<Data = {"$(vDataAntiPenultima)"} >} VALOR)
OBS: Em sua tabela, não deve existir a dimensão Data, caso contrário o resultado esperado não ocorrerá.
Olá Yuri,
Obrigado pelo retorno, não entendi muito bem a respeito da parte do SET (não conheço ainda muito bem essa parte).
a) Seria assim a criação da variavel?
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';
SET DayNames='seg;ter;qua;qui;sex;sáb;dom';
SET vDataUltima = =Data;
SET vDataPenultima = Date(Data-1, 'DD/MM/YYYY');
SET vDataAntiPenultima = Date(Data-2, 'DD/MM/YYYY');
Um abraço
André Tonini
Isso, mas não esqueça de trocar o "Data" pelo nome do seu campo de data
Olá Yuri,
Desculpa, mas creio que Eu esteja ainda fazendo alguma coisa errada.
a) Segue estrutura do meu script, onde o campo MOV_DATA é "Data" e MOV_UNITARIO é "Valor"
SET ThousandSep='.';
SET DecimalSep=',';
SET MoneyThousandSep='.';
SET MoneyDecimalSep=',';
SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';
SET TimeFormat='hh:mm:ss';
SET DateFormat='DD/MM/YYYY';
SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';
SET DayNames='seg;ter;qua;qui;sex;sáb;dom';
SET vDataUltima = =MOV_DATA;
SET vDataPenultima = Date(MOV_DATA-1, 'DD/MM/YYYY');
SET vDataAntiPenultima = Date(MOV_DATA-2, 'DD/MM/YYYY');
ODBC CONNECT TO BI;
// ---- Movimento Produto/Custo ---- //
LOAD *,
YEAR(MOV_DATA) AS ANO_MOV,
MONTH(MOV_DATA) AS MES_MOV,
DAY(MOV_DATA) AS DIA_MOV,
DATE(MOV_DATA) AS DATA_MOV,
WEEK(MOV_DATA) AS SEMANA_MOV,
WEEKDAY(MOV_DATA) AS DIA_SEMANA_MOV;
SQL SELECT
MOV_DATA,
MOV_PRO_CODIGO,
MOV_CUSTOFISCAL,
MOV_UNITARIO,
MOV_ORIGEM
FROM PRODUTOS_MOVIMENTOS_F WHERE MOV_DATA > '31.12.2013' AND MOV_ORIGEM = 'NTC';
b) Na expressão defini o Penultimo Valor e AntePenultimo, respectivamente
SUM({$<DATA_MOV = {"$(vDataPenultima )"} >} MOV_UNITARIO) // esse é o penultimo
SUM({$<MOV_DATA = {"$(vDataAntiPenultima)"} >} MOV_UNITARIO) // esse é o antepenultimo
Att,
André Tonini
Provavelmente é algo relacionado ao formato de sua data.
Vou fazer um exemplo com a app que você passou e te mando
Boa tarde.
Faz um teste assim:
SUM({$<DATA_MOV = {'17/05/2014'} >} MOV_UNITARIO)
SUM({$<MOV_DATA = {'15/05/2014'} >} MOV_UNITARIO)
Coloca dentro de uma caixa de texto com datas que você saiba o valor.
Se não resolver é o formato da data.
Boa tarde Luciano,
Realizei um teste e confirmou que realmente é uma questão de formato de data.
Informando uma data fixa na expressão, como citou, busca corretamente a informação.
att,
André Tonini
Isso ae
Agora então é simples.
Testa outros formatos na caixa de texto para achar o correto e depois é só acertar a variável.