Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

topcount bottomcount

Fiz da seguinte maneira: alterei a ordem para descendente, para que os maiores valores fiquem no topo da coluna. inseri o TopCount (... , 3 , ...) para filtrar as tres primeiras linhas

-- query alterada
WITH MEMBER [Measures].[Faturamento de Vendas] AS '[Measures].[Valor Da Venda]', FORMAT_STRING = "#,###.00"
SELECT 
ORDER ( 
TopCount	(
                ({[Produto].[Hierarquia Fornecedor].[Nivel Produto].Members}),3,[Measures].[Faturamento de Vendas]
            )
, [Measures].[Faturamento de Vendas], BDESC)
on rows,
([Tempo].[Hierarquia Calendario].[Nivel Ano].&[2021]) on columns
from [DW ATACADEZ]
WHERE [Measures].[Faturamento de Vendas];

A query do instrutor abaixo: Lista os valores de forma ascendente, os menores valores virão primeiro Filtra por TopCount, os 3 primeiros valores da lista. Executei a query do instrutor, apesar de estar com TopCount/ascendente, retorna os 3 maiores valores. Igual a minha query. Deveria trazer os 3 menores do topo da lista...

Não entendi


WITH MEMBER [Measures].[Faturamento de Vendas]
AS
'[Measures].[Valor Da Venda]', FORMAT_STRING = "#,###.00"
SELECT 
ORDER ( 
TopCount  (
{[Produto].[Hierarquia Fornecedor].[Nível Produto].Members} , 3, [Measures].[Faturamento de Vendas]
), [Measures].[Faturamento de Vendas], BASC)
on rows,
([Tempo].[Hierarquia Calendário].[Nível Ano].&[2021]) on columns
from [DW ATACADEZ]
WHERE [Measures].[Faturamento de Vendas];
2 respostas
solução!

Oii, Ceilton! Tudo bem?

Agradeço por aguardar o nosso retorno.

Ao usar o TopCount, mesmo que a consulta do instrutor utiliza BASC, retornando os 3 maiores produtos, mas os exibe em ordem ascendente. Por exemplo, se os 3 maiores valores forem 100, 200 e 300, a consulta irá retornar esses valores na ordem 100, 200 e 300. No seu contexto, foi utilizando o BDESC (descendente), que traz os 3 maiores valores e os exibe em ordem decrescente, ou seja, 300, 200 e 100.

Para ter como retorno os 3 menores valores, a sugestão é usar o BottomCount para listá-los.

Espero ter ajudado. Conte sempre conosco aqui no fórum.

Até mais, Ceilton!

Boa tarde Nathalia... Acho que entendi. TopCount não retorna o inicio da lista; e BottomCount não retorna o fim da lista.

TopCount sempre retorna os n maiores, limitado ao valor do segundo parâmetro (no exemplo 3). Em ordem asc ou desc

Eu estava raciocinando como o "top" da linguagem sql usado do sql server.