我对整个 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 级别分解这些过滤器,并且在我的机器上处理截断的数据集更简单(我说让数据库来完成工作!)。
问题是,此查询返回 FOS 渠道中的 0 销售额。这看起来很奇怪,所以我删除了行过滤器:
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 或其他什么来解决这个问题很容易,但我宁愿“正确”地解决它。
我有理由确定我只是误解了一些琐碎的细节,但我已经厌倦了把头撞在桌子上。
谢谢!