Ssas MDX,其中vs子多维数据集混淆
我有以下MDX:Ssas MDX,其中vs子多维数据集混淆,ssas,mdx,olap,Ssas,Mdx,Olap,我有以下MDX: SELECT NON EMPTY { [Measures].[My Measure] } ON COLUMNS FROM ( SELECT NONEMPTY(StrToMember(@StartDate,CONSTRAINED):StrToMember(@EndDate,CONSTRAINED)) ON COLUMNS, NONEMPTY(
SELECT NON EMPTY
{
[Measures].[My Measure]
} ON COLUMNS
FROM
(
SELECT
NONEMPTY(StrToMember(@StartDate,CONSTRAINED):StrToMember(@EndDate,CONSTRAINED))
ON COLUMNS,
NONEMPTY( STRTOSET(@Division))
ON ROWS
FROM
(
SELECT
NONEMPTY({[Project].[Project Status].&[Open],[Project].[Project Status].&[Closed]})
ON COLUMNS,
NONEMPTY(STRTOSET(@TargetLanguage))
ON ROWS
FROM [My Cube]
)
WHERE STRTOSET(@Project)
)
WHERE STRTOSET(@Requestor)
我的目标如下:在@StartDate、@EndDate、@Division、@TargetLanguage、@Project、@Requestor上进行筛选(除了将项目状态筛选为打开/关闭…)
他们唯一的方法我可以得到这些工作是玩子立方体和轴,直到我得到一个结果,似乎是正确的。。。例如,在这里,我不明白为什么在第二个子选择中,我不能简单地放一个:
Where STRTOSET(@TargetLanguage)
而不是把它放在行上。我不能100%肯定这是返回正确的数据,因为它是如此的复杂。。。有什么解释吗?到目前为止,谷歌没有任何帮助,这让我相信,将东西放在子多维数据集的行上并不是正确的解决方案
谢谢 试试这个:
我不是100%使用子多维数据集,而是重构您的代码,我认为这与:
SELECT NON EMPTY
{
[Measures].[My Measure]
} ON COLUMNS
FROM
[My Cube]
WHERE
(
STRTOSET(@Requestor),
STRTOSET(@TargetLanguage),
{[Project].[Project Status].&[Open],[Project].[Project Status].&[Closed]},
STRTOSET(@Division),
{StrToMember(@StartDate,CONSTRAINED):StrToMember(@EndDate,CONSTRAINED)},
STRTOSET(@TargetLanguage)
)
说实话,第一个非空的似乎也不需要
在我看来,内部子立方体只是过滤切片,我认为它们非常简单,可以添加到主过滤器中。我将最终只构建1个子立方体,在1、2、3和更多轴上放置集合和维度。这将是一个清晰、快速的mdx查询。