2
respostas

ParallelPeriod positivo ou negativo?

Não entendi quando devo usar positivo ou negativo no ParallelPeriod:

No exemplo abaixo ele usa 2 para mostrar 2 meses atrás:

-- 10) No MDX abaixo, é utilizada uma função para deslocar,
--     dentro da dimensão tempo, mais de um período:
with
    member [Measures].[FATURAMENTO PLUS 2] as
        '([Measures].[Faturamento],
            ParallelPeriod([Tempo.Calendario].[Mes],
                2, [Tempo.Calendario].CurrentMember))',
        FORMAT_STRING = "#,###.00"
select
non empty exists (
    {[Tempo.Calendario].[Mes].Members},
    [Tempo.Calendario].[2013]
) on rows,
non empty {
    [Measures].[Faturamento],
    [Measures].[FATURAMENTO PLUS 2]
} on columns
from [dmpresidencia]

No exemplo abaixo, ele usa -1 para mostrar 1 ano atrás:

-- 12) Com o parallelPeriod, você pode comparar dados de dois períodos:
with
    member [Measures].[FATURAMENTO 2014] as
        '([Measures].[Faturamento])', FORMAT_STRING = "#,###.00"
    member [Measures].[FATURAMENTO 2013] as
        '([Measures].[Faturamento], ParallelPeriod([Tempo.Calendario].[Ano], -1, [Tempo.Calendario].CurrentMember))',
        FORMAT_STRING = "#,###.00"
    member [Measures].[VARIACAO] as
        '([Measures].[FATURAMENTO 2014]/[Measures].[FATURAMENTO 2013])-1',
        FORMAT_STRING = "#,###.00 %"
select
non empty exists(
    {[Tempo.Calendario].[Mes].Members},
    [Tempo.Calendario].[2014]
) on rows,
non empty {
    [Measures].[FATURAMENTO 2014],
    [Measures].[FATURAMENTO 2013],
    [Measures].[VARIACAO]
} on columns
from [dmpresidencia]
2 respostas

Acho que o instrutor errou no video.

com essas consulta vê-se que, os valores que ele apresentou como 2013, são, na verdade, os de 2015:

with
    member [Measures].[FATURAMENTO 2015] as
        '([Measures].[Faturamento])', FORMAT_STRING = "#,###.00"
select
non empty exists(
    {[Tempo.Calendario].[Mes].Members},
    [Tempo.Calendario].[2015]
) on rows,
non empty {
    [Measures].[FATURAMENTO 2015]
} on columns
from [dmpresidencia]
with
    member [Measures].[FATURAMENTO 2013] as
        '([Measures].[Faturamento])', FORMAT_STRING = "#,###.00"
select
non empty exists(
    {[Tempo.Calendario].[Mes].Members},
    [Tempo.Calendario].[2013]
) on rows,
non empty {
    [Measures].[FATURAMENTO 2013]
} on columns
from [dmpresidencia]

Resumindo: Negativo vai para o futuro. Positivo para o passado.

Oii Ítalo, tudo bom?

O ParallelPeriod é usada para retornar membro de um período anterior na mesma posição relativa de um membro especificado.

Eu olhei a documentação para ter certeza:

  • Se usarmos Zero como Member_Position, a função MDX ParallelPeriod escreverá a mesma Member_Expression que mencionamos antes da função ParallelPeriod.
  • Se usarmos Valor Negativo como Member_Position, a Função ParallelPeriod avançará para um valor especificado e retornará Member_Expression naquela posição.
  • E, se usarmos o valor positivo como Member_Position, a função ParallelPeriod se moverá para trás para o valor especificado e retornará Member_Expression naquela posição.

Eu irei reassistir a aula com calma para verificar se tem algum erro, passou despercebido quando assisti a primeira vez.

Espero ter ajudado de alguma forma. Qualquer coisa estou à disposição :)