Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde.
Estou com um filtro aplicado no mês. A seleção atual esta MES = 11 e ANO = 2018.
Gostaria somar o valor de uma coluna respeitando todos os outros filtros aplicados com exceção ao MES e ANO que devem ser o anterior ao selecionado.
Vejam na imagem como fiz a expressão no qual esta retornando zero.
=Sum({<MES={'10'}, ANO={'2018'}>} VALOR_LIQUIDO)
Olá,
Experimente assim:
=Sum({1<MES={'10'}, ANO={'2018'}>} VALOR_LIQUIDO)
o 1 significa que o set analysis não vai respeitar os filtros selecionados
Funcionou em parte. Desta maneira ele soma o total ignorando os demais filtros aplicados.
Preciso que some o mês anterior respeitando os demais filtros.
Entendi,
não sei se tem uma forma melhor, mas quando tive uma situação parecida (somar data diferente da selecionada) eu criei uma tabela para as datas, sem relacionamento com as demais.
assim eu:
1 - Fiz uma RESIDENTdo campo da data e alterei o nome do campo para não relacionar com a tabela original:
* nome do campo: Data_Filtro
1 - Coloquei essa tabela como opção para seleção pro usuário.
2 - Criei uma variável calculando a data que eu precisava com base na seleção do usuário:
* Ex: vData = Num(Month( AddMonths(GetFieldSelections(Data_Filtro),-1)))
3 - Considerei a variavel vData no set analysis
* Ex: =Sum({<MES={'$(vData)'}, ANO={'2018'}>} VALOR_LIQUIDO)
veja se atende dessa forma.
Abraço
Tentei fazer isso mas não rolou.
Veja o script:
FATURAMENTO:
SQL
SELECT
UF_CLIENTE,
MUNICIPIO_CLIENTE,
NOME_VENDEDOR,
NOME_CLIENTE,
RAMO_CLIENTE,
DESCRICAO_PRODUTO,
DESCRICAO_GRUPO,
DESCRICAO_GRUPO_RES,
TIPO_VENDEDOR,
TES_ESTOQUE,
TES_FINANCEIRO,
TIPO_TES,
ANO,
MES,
SEMANA_ANO,
SEMANA_MES,
DIA,
VALOR_LIQUIDO,
QUANTIDADE,
PESO_FATURADO,
PERC_DESCONTO,
FRETE
FROM QV_FATURAMENTO;
NoConcatenate
LOAD *, Date(AddMonths('01/' & Num(MES,'00') & '/' & ANO,-1), 'MM') AS MES_ANT, Date(AddMonths('01/' & Num(MES,'00') & '/' & ANO,-1), 'YYYY') AS ANO_ANT Resident FATURAMENTO;
Veja que na imagem, mesmo considerando o MES_ANT como 10 o valor esta trazendo do mês 11.
Boa tarde!
Faça assim..
Carregue sua tabela normalmente, conforme abaixo, porem adicionando um campo.
FATURAMENTO:
LOAD *,
'ATUAL' AS STATUS_DATA;
SQL
SELECT
UF_CLIENTE,
MUNICIPIO_CLIENTE,
NOME_VENDEDOR,
NOME_CLIENTE,
RAMO_CLIENTE,
DESCRICAO_PRODUTO,
DESCRICAO_GRUPO,
DESCRICAO_GRUPO_RES,
TIPO_VENDEDOR,
TES_ESTOQUE,
TES_FINANCEIRO,
TIPO_TES,
ANO,
MES,
SEMANA_ANO,
SEMANA_MES,
DIA,
VALOR_LIQUIDO,
QUANTIDADE,
PESO_FATURADO,
PERC_DESCONTO,
FRETE
FROM QV_FATURAMENTO;
//CARREGUE NOVAMENTE A TABELA ACIMA.. FAZENDO MODIFICAÇÕES NA DATA, CONFORME ABAIXO.
LOAD *,
'ANTERIOR' AS STATUS_DATA;
SQL
SELECT
UF_CLIENTE,
MUNICIPIO_CLIENTE,
NOME_VENDEDOR,
NOME_CLIENTE,
RAMO_CLIENTE,
DESCRICAO_PRODUTO,
DESCRICAO_GRUPO,
DESCRICAO_GRUPO_RES,
TIPO_VENDEDOR,
TES_ESTOQUE,
TES_FINANCEIRO,
TIPO_TES,
YEAR(ADDMONTHS(MAKEDATE(ANO,MES,DIA),+1)) AS ANO,
MONTH(ADDMONTHS(MAKEDATE(ANO,MES,DIA),+1)) AS MES,
WEEK(ADDMONTHS(MAKEDATE(ANO,MES,DIA),+1)) AS SEMANA_MES,
//E FAÇA PARA SEMANA ANO E DIA..
//ANO,
//MES,
//SEMANA_ANO,
//SEMANA_MES,
//DIA,
VALOR_LIQUIDO,
QUANTIDADE,
PESO_FATURADO,
PERC_DESCONTO,
FRETE
FROM QV_FATURAMENTO;
As tabelas irão se concatenar automaticamente. Caso não, concatene-as.
Agora você possui uma massa de dados duplicada, que está dividida apenas pelo STATUS_DATA. Utilize em todas as expressões o campo STATUS_DATA = atual.. Apenas nos campos/colunas/expressões onde você quer o mês anterior utilize na expressão o campo STATUS_DATA = anterior.. desta forma você conseguirá fazer todos os filtros conforme desejado.