我对整个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级别上分解这些过滤器,而且在我的机器上处理一个截断的数据集更简单(我说,让DB来完成这项工作吧!)
问题是,此查询在FOS通道中返回0 sales。这似乎很奇怪,所以我删除了行过滤器:
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或其他方法解决这个问题,但我宁愿“正确”地解决它。
我很肯定我只是误解了一些琐碎的细节,但我厌倦了把头撞在桌子上。
谢谢!
发布于 2008-11-10 02:29:29
我通常使用,但MDX通常与Essbase中使用的非常相似。
轴将独立地进行评估,因此组上的filter语句将只查看where子句中的成员。那么,对于FY09,您的毛单位是否可能有一些负数,并且小于或等于0?或者,您的单位数量是否足够大,以至于它们可能会溢出数据类型,并将其包装成负数?
一个可能的工作,如果您只是寻找非空单元格是使用非空关键字的轴。例如:
SELECT
NON EMPTY MEMBERS([Time].[5-4-4 Week Year]),
ON COLUMNS,
NON EMPTY MEMBERS([Group].[Alternate Hierarchies])
ON ROWS
FROM SBD.SBD
WHERE
(
[FiscalYear].[FY09],
[Scenario].[Actuals Total],
[Measures].[Ship Gross Units],
[Channel].[FOS]
)https://stackoverflow.com/questions/266455
复制相似问题