在日期维度上,我有4天(21,22,27,28)作为日期.. 我有时间维度,有一个小时。我从时间维度中选择了7个。可用的衡量标准是Max Price。对于[Time dimension.Hour]。[7]只有2天,即21和28有值,22和27为空。现在我想要基于过滤日期的底部2结果(按最大价格)。以下是mdx查询:
WITH
SET [XL_Col_Dim_0] AS
VisualTotals
(
(DISTINCT
Hierarchize
(
{
Ascendants([Time dimensions.Hour].[7])
,Descendants([Time dimensions.Hour].[7])
}
))
)
SET [XL_Row_Dim_0] AS
VisualTotals
(
(DISTINCT
Hierarchize
(
{
{
DrillDownLevelBottom
(
{[Date dimensions.Day].[All Date dimensions.Days]}
,2,
,[Measures].[Max Price]
)
}
}
))
)
SELECT
NON EMPTY
Hierarchize
(
Intersect
(
AddCalculatedMembers
(
{
DrillDownLevel({[Time dimensions.Hour].[All Time dimensions.Hours]})
}
)
,[XL_Col_Dim_0]
)
)
DIMENSION PROPERTIES
PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME
ON COLUMNS
,NON EMPTY
Hierarchize
(
Intersect
(
AddCalculatedMembers
(
{
DrillDownLevel({[Date dimensions.Day].[All Date dimensions.Days]})
}
)
,[XL_Row_Dim_0]
)
)
DIMENSION PROPERTIES
PARENT_UNIQUE_NAME
,HIERARCHY_UNIQUE_NAME
ON ROWS
FROM [mycube]
WHERE
[Measures].[Max Price]
CELL PROPERTIES
VALUE
,FORMAT_STRING
,LANGUAGE
,BACK_COLOR
,FORE_COLOR
,FONT_FLAGS;
这里的问题是虽然[小时]会返回27和28。[7]对于日期27没有价值。相反,应该返回的日期是21和28。
EDIT 当我用[Date dimensions.Day]。[21],[Date dimensions.Day]。[28]替换[Date dimensions.Day]。[All Date dimensions.Days]。这是[小时]的可用日期。[7]已经被用作切片器了,事情似乎工作得很好,但是如果我做底部1而不是2,它仍然会返回2天的维度结果,这是错误的,它应该只返回1.看起来像某种程度DrillDownLevelBottom没有按预期工作
答案 0 :(得分:1)
如果您只是希望查询查看svc.pLoadEdges(someId).then(function(edgeArray) {
// Use edgeArray here
});
成员,那么您应该使用函数not isempty
NonEmpty
如果你只想考虑小时7的NonEmpty({[Date dimensions.Day].[All Date dimensions.Days]})
天,那么你在NonEmpty
函数的第二个参数中使用一个元组:
NonEmpty
修改
请首先尝试这个非常简单的脚本,以确保您的NonEmpty(
{[Date dimensions.Day].[All Date dimensions.Days]}
,(
[Time dimensions.Hour].[7]
)
)
逻辑正常运行:
Not IsEmpty
也许每天都会存在每小时一次,以便在SELECT
[Measures].[Max Price] ON COLUMNS,
Filter(
[Date dimensions.Day].Members
,Not IsEmpty([Time dimensions.Hour].[7])
)
ON ROWS
FROM [mycube];
函数中使用的元组中添加一个度量:
IsEmpty