Usuário com melhor resposta
Problemas com BottomCount

Pergunta
-
Boa tarde
Estou enfrentando problemas com BottonCount, quando eu exceuto a sentença MDX, ele retorna sempre uma quantidade inferior a definida na função.
Code SnippetSELECT { [Measures].[MEDIDA_1] } ON COLUMNS, NON EMPTY {BottomPercent([DIMEN].[DIMEN].Members,10,[Measures].[MEDIDA_1])} PROPERTIES MEMBER_UNIQUE_NAME, MEMBER_CAPTION ON ROWS FROM [FATURAMENTO]Já procurei em outros lugares e até o momento não encontrei uma solução para o problema. Lembrando que existem mais de 200 registro, se eu executar a mesma sentença sem o BottonCount, ele retorna todos os valores e se eu utilizar o TopCount, funciona perfeitamente.
Estou usando o Analysis do SQL Server 2000 com SP4.
O que pode ser?
Obrigado.
Respostas
-
JP,
Code SnippetSELECT
{ [Measures].[MEDIDA_1] } ON COLUMNS, NON EMPTY {BottomPercent([DIMEN].[DIMEN].Members,100,[Measures].[MEDIDA_1])} PROPERTIES MEMBER_UNIQUE_NAME, MEMBER_CAPTION ON ROWS FROM [FATURAMENTO]SELECT
{ [Measures].[MEDIDA_1] } ON COLUMNS, NON EMPTY {BottomCount([DIMEN].[DIMEN].Members,200)} PROPERTIES MEMBER_UNIQUE_NAME, MEMBER_CAPTION ON ROWS FROM [FATURAMENTO]Se vc utilizar o bottomcount com parametro 10 ele vai retornar apenas as 10 ultimas linhas... (o topcount retorna as 10 primeiras linhas)
como vc colocou o NON EMPTY, ele ainda vai excluir os registros nulos e vazios...
Faça um BottomPercent 100, para pegar 100% do retorno e coloque um valor alto no BottomCount (ex.: 1000)...
execute novamente as duas consultas cole o resultado no excel e faça um sort dos resultados que vc verá que o retorno vai bater.
Abraço
-
Lucas,
Obrigado pela sua ajuda. Consegui fazer de uma outra forma:
Code SnippetSELECT
{[Measures].[MEDIDA_1]} ON COLUMNS,
{ORDER(BOTTOMCOUNT(FILTER([DIMEN].[DIMEN].Members, [Measures].[MEDIDA_1] <> NULL),10,[Measures].[MEDIDA_1]), [Measures].[MEDIDA_1], BDESC)} ON ROWS
FROM
FATURAMENTOFuncionou também, você acha que também esta correto?
Obrigado.
Todas as Respostas
-
JP,
Code SnippetSELECT
{ [Measures].[MEDIDA_1] } ON COLUMNS, NON EMPTY {BottomPercent([DIMEN].[DIMEN].Members,100,[Measures].[MEDIDA_1])} PROPERTIES MEMBER_UNIQUE_NAME, MEMBER_CAPTION ON ROWS FROM [FATURAMENTO]SELECT
{ [Measures].[MEDIDA_1] } ON COLUMNS, NON EMPTY {BottomCount([DIMEN].[DIMEN].Members,200)} PROPERTIES MEMBER_UNIQUE_NAME, MEMBER_CAPTION ON ROWS FROM [FATURAMENTO]Se vc utilizar o bottomcount com parametro 10 ele vai retornar apenas as 10 ultimas linhas... (o topcount retorna as 10 primeiras linhas)
como vc colocou o NON EMPTY, ele ainda vai excluir os registros nulos e vazios...
Faça um BottomPercent 100, para pegar 100% do retorno e coloque um valor alto no BottomCount (ex.: 1000)...
execute novamente as duas consultas cole o resultado no excel e faça um sort dos resultados que vc verá que o retorno vai bater.
Abraço
-
Lucas,
Obrigado pela sua ajuda. Consegui fazer de uma outra forma:
Code SnippetSELECT
{[Measures].[MEDIDA_1]} ON COLUMNS,
{ORDER(BOTTOMCOUNT(FILTER([DIMEN].[DIMEN].Members, [Measures].[MEDIDA_1] <> NULL),10,[Measures].[MEDIDA_1]), [Measures].[MEDIDA_1], BDESC)} ON ROWS
FROM
FATURAMENTOFuncionou também, você acha que também esta correto?
Obrigado.
-