Ssas Analysis services筛选器函数隐式筛选空元素
无论成员是否为空,我都需要按某种条件筛选[\u Account.Account selection]中的成员,但filter()函数隐式排除空成员。这是一个bug还是一个特性?MSDN没有提到过滤器函数的这种行为 你知道如何避免这个问题吗Ssas Analysis services筛选器函数隐式筛选空元素,ssas,mdx,Ssas,Mdx,无论成员是否为空,我都需要按某种条件筛选[\u Account.Account selection]中的成员,但filter()函数隐式排除空成员。这是一个bug还是一个特性?MSDN没有提到过滤器函数的这种行为 你知道如何避免这个问题吗 WITH SET [__Account.Account selection] AS '{ { [Account].[Account Number].&[110] ,[Account].[Acco
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:“空成员”是指在任何度量值上都没有值的成员
还有一些成员采取了措施。。。
请尝试以下方法:
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
。由于之前未提及,当前坐标系为[所有账户]
成员。由于Account维度是父子维度,因此8个帐号中的6个显然不存在All成员。更改查询可确保将相关帐户和帐户号码对放在一起,以便所有8行都存在于多维数据集中并显示出来。请尝试以下操作:
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
。由于之前未提及,当前坐标系为[所有账户]
成员。由于Account维度是父子维度,因此8个帐号中的6个显然不存在All成员。更改查询可确保将相关帐户和帐户号码对放在一起,以便所有8行都存在于多维数据集中并显示出来。成员为空是什么意思?您能提供一个屏幕截图吗?成员在所有度量值上都没有值。哪个客户端工具正在运行此查询?SSMS MDX窗口?SSR?自定义应用程序?是所有行都消失了,还是只有空的成员行?从8个指定成员中,有两个将出现在结果中,因为它们是具有值的成员…如果删除筛选函数,查询结果中所有8个都将返回?您认为成员为空是什么意思?您能提供一个屏幕截图吗?成员在所有度量值上都没有值。哪个客户端工具正在运行此查询?SSMS MDX窗口?SSR?自定义应用程序?是所有行都消失了,还是只有空成员行?从8个指定成员中,有两个将出现在结果中,因为它们是具有值的成员…如果删除筛选函数,则查询结果中的所有8个都将返回?在HasValue列下返回具有“1”值的相同两个成员。不工作:(它对你有用?如果你有AdwentureWorks(ssas的示例数据库,你可以试试)谢谢你的帮助!Divisadero明天会试试。什么版本的ssas?版本12.0.2000.8。@Divisadero那是2014 RTMReturns,在HasValue列下有相同的两个成员,值为“1”。不工作:(它对你有用?如果你有AdwentureWorks(ssas的示例数据库,您可以尝试)谢谢您的帮助,顺便说一句!@Divisadero明天将尝试。什么版本的ssas?版本12.0.2000.8.@Divisadero这是2014 RTM