我对整个MDX的东西很陌生,但以下只是驱使我batty。我使用的FILTER
声明奇怪地表现了......。代码示例,接着描述:MDX过滤器问题
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或其他方法解决这个问题很简单,但我宁愿解决它“正确”。
我相当确定我只是误解了一些小小的细节,但我厌倦了把我的头撞向桌子。
谢谢!