Digamos que eu tenha uma dimensão de tempo com os níveis todos, ano, trimestre, mês, dia. Eu tenho algumas vendas por mês e uma medida calculada [vendas no ano passado]
WITH MEMBER [Measures].[sales last year] AS (ParallelPeriod([Time].[Time].[Year],1,[Time].[Time].CurrentMember), [Measures].[sales])
SELECT {[Measures].[sales], [Measures].[sales last year]} ON 0
, [Time].[Time].[Month].Members ON 1
FROM [Sales]
Agora a dimensão de tempo tem um UnknownMember visível e mostra como [vendas do ano passado] o mesmo valor que vejo para janeiro do meu último ano na hierarquia.
Por que? Como posso evitá-lo? Quero dizer, a soma de todas as [vendas do ano passado] deve ser igual à soma de todas as [vendas] de todos os anos, exceto do primeiro.
A maneira como o `PARALLELPERIOD' funciona é de modo que ele suba na hierarquia até o nível especificado e, em seguida, retroceda ou avance o número de períodos e, em seguida, desça novamente usando o mesmo caminho.
Neste 'descendo o caminho', o período paralelo descerá o mesmo membro ordinal novamente. Portanto, se ele subiu do primeiro membro (no seu exemplo, janeiro), ele descerá do primeiro membro novamente. Se ele moveu o segundo membro para cima (no seu exemplo de fevereiro), ele moverá o segundo membro para baixo novamente.
Isso obviamente rompe com uma hierarquia desconhecida, já que cada filho é o primeiro membro de seu pai.
Digamos, por exemplo, que você tenha essa hierarquia
E então você faz um parallelperiod no membro folha da hierarquia desconhecida, o parallelperiod irá subir para o nível do ano da hierarquia desconhecida, voltar um ano e descer para o nível folha novamente, lembrando que subiu do primeiro membro da hierarquia desconhecida e descendo o primeiro membro da hierarquia de 2015, que é janeiro de 2015.