我需要通过某种条件从[__Account.Account选择]中过滤成员,无论成员是否为空,但Filter()函数隐式排除空成员。这是一个错误或功能吗? MSDN没有提到Filter函数的这种行为。
知道如何避免这个问题吗?
WITH
SET [__Account.Account selection] AS
'{
{
[Account].[Account Number].&[110]
,[Account].[Account Number].&[1130]
,[Account].[Account Number].&[1164]
,[Account].[Account Number].&[1210]
,[Account].[Account Number].&[1300]
,[Account].[Account Number].&[20]
,[Account].[Account Number].&[8500]
,[Account].[Account Number].&[8040]
}
}'
SET [__Account.Account Number_RootMembers_Smart] AS
'{
Filter(
[__Account.Account selection],
1 = 1)}'
SELECT
[__Account.Account Number_RootMembers_Smart] ON ROWS
,{} ON COLUMNS
FROM [Adventure Works]
注意:函数Generate()具有相同的行为。
注2:由"空成员"我的意思是对任何措施都没有价值的成员。
答案 0 :(得分:2)
请试试这个:
WITH
SET [__Account.Account selection] AS
{
{
[Account].[Account Number].&[110]
,[Account].[Account Number].&[1130]
,[Account].[Account Number].&[1164]
,[Account].[Account Number].&[1210]
,[Account].[Account Number].&[1300]
,[Account].[Account Number].&[20]
,[Account].[Account Number].&[8500]
,[Account].[Account Number].&[8040]
}
* [Account].[Account].[Account].Members
}
SET [__Account.Account Number_RootMembers_Smart] AS
{
Filter(
[__Account.Account selection],
1=1)}
SELECT {} ON COLUMNS,
[__Account.Account Number_RootMembers_Smart] ON ROWS
FROM [Adventure Works]
请注意,我已将[Account].[Account].[Account].Members
添加到查询中。以前,由于未提及,当前坐标为[All Accounts]
成员。由于帐户维度是父子维度,因此所有成员显然不存在8个帐号中的6个。更改查询可确保将相关的帐户和帐户编号对放在一起,以便多维数据集空间中存在所有8行并显示。