MDX-запрос для подсчета количества наименований товаров - PullRequest
0 голосов
/ 18 января 2019

Я новичок в MDX и пытаюсь посчитать количество названий продуктов на еженедельной основе. Я написал приведенный ниже запрос MDX, но в результате получаю счетчик всех продуктов.

WITH MEMBER [Measures].[Count Of Members] AS
Count(Existing [Product Dimension].[ProductName].Members)

SELECT {[Measures].[Count Of Members]} ON 0,  
NON EMPTY
{
[Date Dimension].[Financial WC]
} ON 1

FROM [Cube]
WHERE ([Date Dimension].[FinancialYear].&[2018/19],
       [Sales].[PaymentType].&[Delivery])

Я получаю результат как:

"Все 230"

как есть всего 230 наименований продуктов

Но я хочу получить результат как:

неделя1 50 неделю2 73 неделю3 34 , ,

1 Ответ

0 голосов
/ 18 января 2019

Добро пожаловать в MDX.У вашего квеста есть проблема.Когда вы говорите, что хотите считать «наименования продуктов на еженедельной основе», вам нужно будет подсчитать их на основе фактов.Так, например, количество продуктов, которые были проданы на этой неделе.То, как вы рассчитываете, в основном учитывает все продукты в вашем измерении.

Для примера ниже я использую приключенческие работы.

В приведенном ниже примере я хочу знать, сколько типов продуктов было продано за неделю 1. Здесь речь идет о количестве типов продуктов, а не единиц.Запрос ниже делает это.

select [Measures].[Internet Sales Amount] on columns,
non empty
([Date].[Calendar Week of Year].&[1],[Product].[Product].[Product])
on rows 
from [Adventure Works]

Результат: enter image description here

Результат Результат enter image description here

Уведомленияв результате счет показывает 97 строк.это означает, что было продано 96 товаров, результат также включает имя столбца, следовательно, количество равно 97.

Теперь давайте взглянем на запрос, который решает вашу проблему.

with member
[Measures].[Test]
 as 
count(
filter
(([Date].[Calendar Week of Year].currentmember, [Product].[Product].[Product]),[Measures].[Internet Sales Amount]>0)
)
select 
[Measures].[Test]
on columns,
[Date].[Calendar Week of Year].[Calendar Week of Year]
on rows 
from [Adventure Works]

Результат

enter image description here

Таким образом, это показывает, что 96 продуктов были проданы.

Логика запроса заключается в том, что мы подсчитываем все продукты, у которых> 0 продаж за неделю.«.currentmember» переводит на текущую неделю, поэтому мы можем рассчитывать на любую неделю.

...