Ssas 多维数据集的Mdx查询正在为“返回不同的结果”;“与成员一起”;如果成员标识符名称不同
我使用“With Member”启动mdxquery以获取不同单元格的不同元组集组合。我的需求是在单个mdx查询中查询具有多维度的元组。 据我所知,成员标识符只是一个别名,它不应该影响查询结果。但是,如果我使用单独的成员标识符,它将为同一查询返回不同的结果集。过滤器所在的切片器也是相同的。Ssas 多维数据集的Mdx查询正在为“返回不同的结果”;“与成员一起”;如果成员标识符名称不同,ssas,mdx,cube,Ssas,Mdx,Cube,我使用“With Member”启动mdxquery以获取不同单元格的不同元组集组合。我的需求是在单个mdx查询中查询具有多维度的元组。 据我所知,成员标识符只是一个别名,它不应该影响查询结果。但是,如果我使用单独的成员标识符,它将为同一查询返回不同的结果集。过滤器所在的切片器也是相同的。 我的要求是我有一组元组,每个元组都有不同的成员维度/属性组合,我只想启动一个查询来获取每个元组集的数据。所以我使用“With Member”选项,它允许命名具有不同维度的成员集 查询1、查询2、查询3几乎相同
我的要求是我有一组元组,每个元组都有不同的成员维度/属性组合,我只想启动一个查询来获取每个元组集的数据。所以我使用“With Member”选项,它允许命名具有不同维度的成员集 查询1、查询2、查询3几乎相同,只是它们使用的成员名称不同。非常感谢您的帮助或建议
Query 1:
With
MEMBER [Account].[9] AS '([Account].&[500],[Department].&[102])'
MEMBER [Account].[1] AS '([Account_Text].[Account_Text_Level].&[-1],[Account].&[161])'
MEMBER [Account].[6] AS '([Account].&[500],[Account_Group].&[214])'
MEMBER [Account].[10] AS '([Account].&[1])'
MEMBER [Account].[13] AS '([Account].&[2881],[Company].&[173])'
MEMBER [Account].[4] AS '([Company].&[1],[Company_Text].&[-1],[Account].&[500],[Account_Group].&[215],[Account_Text].[Account_Text_Level].&[-1],[Department].&[103])'
Select
{[Account].[9],[Account].[1],[Account].[6],[Account].[10],[Account].[13],[Account].[4]}
Dimension Properties [Parent_Unique_Name] On Columns From [Adventure Works]
Where ([BusinessCenter].&[1],[CalculatedDim].&[1],[CostCenter].&[1],[Department].&[1],[Geography].&[1],[ICSegment].&[1],
[ProductLine].&[1],[Reporting].[Level 1].&[14],[Company].&[1],[Scenario].&[1],[Time].&[2014])
Query 2:
With
MEMBER [Test9] AS '([Account].&[500],[Department].&[102])'
MEMBER [Test1] AS '([Account_Text].[Account_Text_Level].&[-1],[Account].&[161])'
MEMBER [Test2] AS '([Account].&[500],[Account_Group].&[214])'
MEMBER [Test10] AS '([Account].&[1])'
MEMBER [Test13] AS '([Account].&[2881],[Company].&[173])'
MEMBER [Test4] AS '([Company].&[1],[Company_Text].&[-1],[Account].&[500],[Account_Group].&[215],[Account_Text].[Account_Text_Level].&[-1],[Department].&[103])'
Select
{[Test9],[Test1],[Test2],[Test10],[Test13],[Test4]}
Dimension Properties [Parent_Unique_Name]
On Columns From [Adventure Works]
Where ([BusinessCenter].&[1],[CalculatedDim].&[1],[CostCenter].&[1],[Department].&[1],[Geography].&[1],
[ICSegment].&[1],
[ProductLine].&[1],[Reporting].[Level 1].&[14],[Company].&[1],[Scenario].&[1],[Time].&[2014]
)
Query 3:
With
MEMBER [Company].[9] AS '([Account].&[500],[Department].&[102])'
MEMBER [Company].[1] AS '([Account_Text].[Account_Text_Level].&[-1],[Account].&[161])'
MEMBER [Company].[6] AS '([Account].&[500],[Account_Group].&[214])'
MEMBER [Company].[10] AS '([Account].&[1])'
MEMBER [Company].[13] AS '([Account].&[2881],[Company].&[173])'
MEMBER [Company].[4] AS '([Company].&[1],[Company_Text].&[-1],[Account].&[500],[Account_Group].&[215],[Account_Text].[Account_Text_Level].&[-1],[Department].&[103])'
Select
{[Company].[9],[Company].[1], [Company].[6],[Company].[10],[Company].[13],[Company].[4]}
Dimension Properties [Parent_Unique_Name] On Columns From [Adventure Works]
Where ([BusinessCenter].&[1],[CalculatedDim].&[1],[CostCenter].&[1],[Department].&[1],[Geography].&[1],[ICSegment].&[1],
[ProductLine].&[1],[Reporting].[Level 1].&[14],[Scenario].&[1],[Time].&[2014],[Account].&[1])
我的回答是基于你的评论
我有一组元组,每个元组都有不同的成员,我想要 只触发一个查询以获取每个元组集的数据。所以我 我使用“With Member”选项,该选项允许命名成员集 具有不同的维度苏迪 你的问题涉及维度和层次的概念。层次性表示一个集合中的所有元组都应该包含相同的维度层次结构,维度表示它们必须具有相同的顺序。因此,如果元组缺少成员,则在查询中使用其默认成员来满足属性。这不会影响结果,因为这是查询处理器对元组中遗漏的每个维度所做的操作。您的查询将如下所示
Select
{
([Account].&[500], [Department].&[102], [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].[YourHierarchy].defaultmember, [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[161], [Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].&[-1], [Account_Group].[YourHierarchy].defaultmember, [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[500], [Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].&[214] , [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[1], [Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].[YourHierarchy].defaultmember, [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[2881],[Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].[YourHierarchy].defaultmember, [Company].&[173]),
([Account].&[500], [Department].&[103], [Account_Text].[Account_Text_Level].&[-1], [Account_Group].&[215] ,[Company].&[1] ,[Company_Text].&[-1])
}
Dimension Properties [Parent_Unique_Name] On Columns
From [Adventure Works]
Where
([BusinessCenter].&[1],[CalculatedDim].&[1],
[CostCenter].&[1],[Department].&[1],
[Geography].&[1],[ICSegment].&[1],
[ProductLine].&[1],[Reporting].[Level 1].&[14],
[Company].&[1],[Scenario].&[1],[Time].&[2014])
编辑:根据下面的评论
看一看
select
[Measures].[Internet Sales Amount]
on columns,
([Date].[Calendar Year].&[2012],[Product].[Category].&[1])
on
rows
from [Adventure Works]
结果
第二元组
select
[Measures].[Internet Sales Amount]
on columns,
([Date].[Calendar Year].&[2012],[Customer].[Country].&[United States])
on
rows
from [Adventure Works]
结果:
第三元组
select
[Measures].[Internet Sales Amount]
on columns,
{
([Customer].[Gender].&[F],[Product].[Category].&[3])
}
on
rows
from [Adventure Works]
结果
现在让我们把它们结合起来
select
[Measures].[Internet Sales Amount]
on columns,
{
([Date].[Calendar Year].&[2012],[Product].[Category].&[1],[Customer].[Country].defaultmember,[Customer].[Gender].defaultmember),
([Date].[Calendar Year].&[2012],[Product].[Category].defaultmember,[Customer].[Country].&[United States],[Customer].[Gender].defaultmember),
([Date].[Calendar Year].defaultmember,[Product].[Category].&[3],[Customer].[Country].defaultmember,[Customer].[Gender].&[F])
}
on
rows
from [Adventure Works]
结果
我的回答是基于你的评论
我有一组元组,每个元组都有不同的成员,我想要 只触发一个查询以获取每个元组集的数据。所以我 我使用“With Member”选项,该选项允许命名成员集 具有不同的维度苏迪 你的问题涉及维度和层次的概念。层次性表示一个集合中的所有元组都应该包含相同的维度层次结构,维度表示它们必须具有相同的顺序。因此,如果元组缺少成员,则在查询中使用其默认成员来满足属性。这不会影响结果,因为这是查询处理器对元组中遗漏的每个维度所做的操作。您的查询将如下所示
Select
{
([Account].&[500], [Department].&[102], [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].[YourHierarchy].defaultmember, [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[161], [Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].&[-1], [Account_Group].[YourHierarchy].defaultmember, [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[500], [Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].&[214] , [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[1], [Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].[YourHierarchy].defaultmember, [Company].[YourHierarchy].defaultmember,[Company_Text].[YourHierarchy].defaultmember),
([Account].&[2881],[Department].[Youhierarchy].defaultmember, [Account_Text].[Account_Text_Level].defaultmember, [Account_Group].[YourHierarchy].defaultmember, [Company].&[173]),
([Account].&[500], [Department].&[103], [Account_Text].[Account_Text_Level].&[-1], [Account_Group].&[215] ,[Company].&[1] ,[Company_Text].&[-1])
}
Dimension Properties [Parent_Unique_Name] On Columns
From [Adventure Works]
Where
([BusinessCenter].&[1],[CalculatedDim].&[1],
[CostCenter].&[1],[Department].&[1],
[Geography].&[1],[ICSegment].&[1],
[ProductLine].&[1],[Reporting].[Level 1].&[14],
[Company].&[1],[Scenario].&[1],[Time].&[2014])
编辑:根据下面的评论
看一看
select
[Measures].[Internet Sales Amount]
on columns,
([Date].[Calendar Year].&[2012],[Product].[Category].&[1])
on
rows
from [Adventure Works]
结果
第二元组
select
[Measures].[Internet Sales Amount]
on columns,
([Date].[Calendar Year].&[2012],[Customer].[Country].&[United States])
on
rows
from [Adventure Works]
结果:
第三元组
select
[Measures].[Internet Sales Amount]
on columns,
{
([Customer].[Gender].&[F],[Product].[Category].&[3])
}
on
rows
from [Adventure Works]
结果
现在让我们把它们结合起来
select
[Measures].[Internet Sales Amount]
on columns,
{
([Date].[Calendar Year].&[2012],[Product].[Category].&[1],[Customer].[Country].defaultmember,[Customer].[Gender].defaultmember),
([Date].[Calendar Year].&[2012],[Product].[Category].defaultmember,[Customer].[Country].&[United States],[Customer].[Gender].defaultmember),
([Date].[Calendar Year].defaultmember,[Product].[Category].&[3],[Customer].[Country].defaultmember,[Customer].[Gender].&[F])
}
on
rows
from [Adventure Works]
结果
您能附上结果吗。第二,你想用这个实现什么?我有一组元组,每个元组都有不同的成员,我只想启动一个查询来获取每个元组集的数据。所以我使用了“With Member”选项,它允许有不同维度的命名成员集。你能附上结果吗。第二,你想用这个实现什么?我有一组元组,每个元组都有不同的成员,我只想启动一个查询来获取每个元组集的数据。所以我使用“With Member”选项,它允许命名具有不同维度的成员集。嗨,MoazRub,谢谢你的回答。但在我的例子中,我可能有属性和维度的组合。如果只有维度来维护层次性,我可以添加默认维度,但对于属性,没有默认属性。所以唯一可行的选择就是使用“With Member”" . 但我无法理解为什么这会对不同的成员别名产生不同的结果。谢谢你的帮助。@Sudi我想我无法解释我自己。看一下编辑,但是这里所有的成员都是维度。如果我们的属性或属性层次结构中没有定义默认成员,那么如何查询属性的属性或属性层次结构。@Sudi例如“[Date].[Calendar Year].&[2012]”不仅仅是一个维度,“Calendar Year”是“Date”维度的属性。就属性层次而言,它被转换为基础属性。您将始终具有defaultmember值。通常它是“所有”的,否则是您定义的,否则是第一个成员。请使用成员[All]而不是defaultmember。所有都是使用的标准成员。嗨,MoazRub,谢谢你的回答。但在我的例子中,我可能有属性和维度的组合。如果只有维度来维护层次性,我可以添加默认维度,但对于属性,没有默认属性。所以唯一可行的选择就是使用“With Member”" . 但我无法理解为什么这会对不同的成员别名产生不同的结果。谢谢你的帮助。@Sudi我想我无法解释我自己。看一下编辑,但是这里所有的成员都是维度。如果我们的属性或属性层次结构中没有定义默认成员,那么如何查询属性的属性或属性层次结构。@Sudi例如“[Date].[Calendar Year].&[2012]”不仅仅是一个维度,“Calendar Year”是“Date”维度的属性。就属性层次而言,它被转换为基础属性。您将始终具有defaultmember值。通常它是“所有”的,否则是您定义的,否则是第一个成员。请使用成员[All]而不是defaultmember。所有都是要使用的标准成员。