Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Estou querendo fazer uma expressão Variação Mensal = Receita Mat/Med (mes ant) / Receita Mat/Med (mes atual), exemplo:
Na linha de Jan/2014 a Variação Mensal = Receita Mat/Med (Dez/2013) / Receita Mat/Med (Jan/2014)
E assim sucessivamente, ou seja, preciso que seja dinâmico. Quando seleciono o ano, esta expressão deve ser calculada dinamicamente.
Anexei um exemplo para ajudar. Não é o original, mas se alguém conseguir fazer a expressão variação neste exemplo resolve o meu problema real.
Desde já agradeço,
Geny Oliveira
Vai dar mais trabalho e onerar um pouco a carga, mas na aplicação ficará mais rápido.
Luciano,
E o a tabela de Competência vai ficar dentro da tabela fato com essa nova carga?
Não sei como vai ficar a lentidão da carga, porque tenho milhões de registros na fato.
Estou tentando carregar o exemplo, mas ainda não consegui, ocorre erro,.
Obrigada
Geny
Luciano,
Minha nuvem tem várias dimensões ligada a tabela fato e eu não sei como fazer essa tabela de valores anteriores que vai ficar ligada a fato.
Estou achando muito complicado fazer assim.
Geny
Para minimizar esse impacto, você pode incluir na fato somente os campos "Cd Mes Ant" e "Cd Mes" e retirá-los da competência. Você só precisa dos dois campos para o processo. Eu utilizei o left join com tudo só para ser mais simples. Acho que do jeito abaixo ficará mais rápido:
Volta a Dimensão como estava:
[Dim_competencia]:
LOAD ID_COMPETENCIA,
date(date#(CD_MES&'01','YYYYMMDD')) AS "Dt Competencia",
CD_MES AS "Cd Mes",
DS_MES AS "Mes/Ano",
CD_MES_ANT AS "Cd Mes Ant",
ANO AS "Ano",
MES AS "Mes",
CD_TRIMESTRE AS "Cd Trimestre",
DS_TRIMESTRE AS "Trimestre",
CD_SEMESTRE AS "Cd Semestre",
DS_SEMESTRE AS "Semestre"
FROM
[..\..\Extracao\Dimensoes\Dim_competencia.qvd]
(qvd);
Coloca o Left Join assim:
Left Join(Fato_Bicustos_01)
LOAD ID_COMPETENCIA,
CD_MES AS "Cd Mes",
CD_MES_ANT AS "Cd Mes Ant"
Resident [Dim_competencia];
e dropa os campos "Cd Mes Ant" e "Cd Mes" da dimensão:
Drop Fields [Cd Mes], [Cd Mes Ant] FROM [Dim_competencia];
Luciano,
Não consegui fazer a carga com o left join no exemplo que você enviou. E no meu mundo real vai ser mais complicado de fazer, pois são várias dimensões e milhões de registros.
Não tem uma forma de fazer com set analyse ou outra coisa direto na expressão?
Ats
Geny
Boa Tarde Luciano,
Muito obrigada pela ajuda.
Consegui fazer criando uma variável com o último mês do ano anterior (=Max(Ano) -1&12) e criei uma variável para guardar o valor da receita do ultimo mes do ano anterior (=SUM({$<[Cd Mes]={'$(=VUltMesAnoAnterior)'}, Ano=>} VL_RECEITA). E na expressão da variação usei a variável com o valor da receita.
Ats
Geny
Ok.
Só dei aquela ideia pq dessa forma não funciona para duas viradas de ano.
No meu caso só vai selecionar uma Ano por vez e por isso funciona.
Obrigada pela atenção,
Geny