Analysis Services Filter 函数隐式过滤空元素
Analysis services Filter function implicitly filters empty elements
我需要根据某些条件从 [__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:"empty member" 我指的是在任何衡量标准上都没有价值的成员。
并且有成员采取措施...
请试试这个:
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]
成员。由于帐户维度是一个 parent-child 维度,因此 All 成员显然不存在 8 个帐号中的 6 个。更改查询可确保将相关的帐号和帐号对放在一起,以便所有 8 行都存在于多维数据集中 space 并显示出来。
我需要根据某些条件从 [__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:"empty member" 我指的是在任何衡量标准上都没有价值的成员。
并且有成员采取措施...
请试试这个:
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]
成员。由于帐户维度是一个 parent-child 维度,因此 All 成员显然不存在 8 个帐号中的 6 个。更改查询可确保将相关的帐号和帐号对放在一起,以便所有 8 行都存在于多维数据集中 space 并显示出来。