Я довольно новичок во всем, что касается MDX, но следующее просто сводит меня с ума. FILTER
заявление, которое я использую, действует ... странно. Пример кода с последующим описанием:
SELECT
{
FILTER(
MEMBERS([Time].[5-4-4 Week Year]),
[Measures].[Ship Gross Units] > 0
)
}
ON COLUMNS,
{
FILTER(
MEMBERS([Group].[Alternate Hierarchies]),
[Measures].[Ship Gross Units] > 0
)
}
ON ROWS
FROM SBD.SBD
WHERE
(
[FiscalYear].[FY09],
[Scenario].[Actuals Total],
[Measures].[Ship Gross Units],
[Channel].[FOS]
)
Я пытаюсь получить брутто-единицы для определенного канала продаж по неделям финансового года (некоторые столбцы слегка запутаны). Все эти фильтры установлены из-за того, что мне часто нужно их разбирать на уровне SKU, и проще иметь на своем компьютере усеченный набор данных (пусть, скажем, работает БД!).
Проблема , этот запрос возвращает 0 продаж в канале FOS. Это казалось странным, поэтому я удалил фильтр строк:
SELECT
{
FILTER(
MEMBERS([Time].[5-4-4 Week Year]),
[Measures].[Ship Gross Units] > 0
)
}
ON COLUMNS,
MEMBERS([Group].[Alternate Hierarchies])
ON ROWS
FROM SBD.SBD
WHERE
(
[FiscalYear].[FY09],
[Scenario].[Actuals Total],
[Measures].[Ship Gross Units],
[Channel].[FOS]
)
И вдруг продажи появляются на канале FOS. Это поражает меня; Ранее я предполагал, что фильтрую, чтобы получать строки, показывающие продажи, и не получил ни одного. Сейчас я показываю все, и есть строки с продажами. Достаточно легко обойти эту проблему с помощью Perl или чего-то еще, но я бы лучше решил ее «правильно».
Я вполне уверен, что просто неправильно понимаю некоторые мелкие детали, но я устал от удара головой о стол.
Спасибо!