Usuário com melhor resposta
Calculo % do registro anterior

Pergunta
-
Tenho um tabela fato que tem nela guardada a evolução de preços de produtos.
Registros como:
DataRef IDProduto ValorVenda
201404 4825 19,32
201405 4825 20,00
201406 4825 21,50
***Imaginem esta tabela com inúmeros produtos e registros de 5 anos***
Preciso criar um MDX que calcule o % de evolução do preço por mês, trimestre e ano que é a hierarquia de tempo que uso.
Por exemplo de 201404 para 201405 o preço do produto 4825 aumentou 3,4%.
de 201405 para 201406 o preço do produto 4825 aumentou 7%
Obrigado
Ricardo
Respostas
-
Ricardo,
Verifiquei que você tem este histórico de preço!!!
Pois neste caso, é melhor você fazer uma expressão, pegando o preço por exemplo de Abril de 2015 multiplicando pelo preço de Abril de 2015 e dividindo por 100.
Eu particularmente acho que este é melhor você realizar este tipo de processamento antes do relatório ser apresentado.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Editado Junior Galvão - MVPMVP quinta-feira, 3 de julho de 2014 15:16
- Sugerido como Resposta Durval RamosModerator terça-feira, 22 de julho de 2014 19:12
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 22:31
-
A idéia do Junior é boa em realizar o cálculo previamente.
Vc pode também montar um MDX. Segue uma idéia abaixo:
WITH MEMBER [Measures].[PercentualEvolucao] as (SUM([Data].[Ano-Mês].currentMember,[Measures].[Valor Produto]) / SUM([Data].[Ano-Mês].Prevmember,[Measures].[Valor Produto]) )-1 , FORMAT_STRING = '0.0%' SELECT NON EMPTY { [Measures].[Valor Produto], [Measures].[PercentualEvolucao] } ON COLUMNS, NON EMPTY { ( [Data].[Ano-Mês].[Ano-Mês].ALLMEMBERS ) } ON ROWS FROM [Cubo] WHERE ( [Data].[Ano].&[2014] )
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Durval RamosModerator terça-feira, 22 de julho de 2014 19:12
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 22:31
Todas as Respostas
-
Ricardo,
Verifiquei que você tem este histórico de preço!!!
Pois neste caso, é melhor você fazer uma expressão, pegando o preço por exemplo de Abril de 2015 multiplicando pelo preço de Abril de 2015 e dividindo por 100.
Eu particularmente acho que este é melhor você realizar este tipo de processamento antes do relatório ser apresentado.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Editado Junior Galvão - MVPMVP quinta-feira, 3 de julho de 2014 15:16
- Sugerido como Resposta Durval RamosModerator terça-feira, 22 de julho de 2014 19:12
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 22:31
-
-
A idéia do Junior é boa em realizar o cálculo previamente.
Vc pode também montar um MDX. Segue uma idéia abaixo:
WITH MEMBER [Measures].[PercentualEvolucao] as (SUM([Data].[Ano-Mês].currentMember,[Measures].[Valor Produto]) / SUM([Data].[Ano-Mês].Prevmember,[Measures].[Valor Produto]) )-1 , FORMAT_STRING = '0.0%' SELECT NON EMPTY { [Measures].[Valor Produto], [Measures].[PercentualEvolucao] } ON COLUMNS, NON EMPTY { ( [Data].[Ano-Mês].[Ano-Mês].ALLMEMBERS ) } ON ROWS FROM [Cubo] WHERE ( [Data].[Ano].&[2014] )
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Sugerido como Resposta Durval RamosModerator terça-feira, 22 de julho de 2014 19:12
- Marcado como Resposta Durval RamosModerator segunda-feira, 5 de janeiro de 2015 22:31