假设我们有以下维度
以及一套6项措施,我们希望获得给定年份的每个Semestrer,Trimester,Month,Contractor,Color和Size的6个度量。
这是我的MDX查询:
SELECT
{
... the 6 measures ...
} ON COLUMNS,
{
(
[Dim DATE].[year].[year].AllMembers *
[Dim DATE].[SEMESTRE NOM].[SEMESTRE NOM].AllMembers *
[Dim DATE].[TRIMESTRE NOM].[TRIMESTRE NOM].AllMembers *
[Dim DATE].[MOIS NOM].[MOIS NOM].AllMembers *
[Dim CONTRACTOR].[Name CONTRACTOR].AllMembers *
[Dim COLOR].[Name COLOR].AllMembers *
[Dim SIZE].[Name SIZE].AllMembers
)
} DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM (
SELECT ( { StrToSet( "[Dim DATE].[year].[year].&[" + @Year + "]" , CONSTRAINED ) }
) ON COLUMNS
FROM [TheCube]
这非常慢(超过20分钟),只有6个承包商,6个颜色,18个尺寸...... .AllMembers
和.Members
之间有什么区别?
答案 0 :(得分:1)
根据层次结构中的实际年数,您可以使用交叉连接创建一个非常大的集合。正如评论中提到的icCube,为什么不使用:
StrToSet( "[Dim DATE].[year].[year].&[" + @Year + "]" , CONSTRAINED )
在ROWS的交叉连接中?
AllMembers vs Members;这是一个doc;所有成员都包括计算。成员;你有任何昂贵的计算方法吗?成员?
[昏暗日期]你有多少成员。[MOI NOM]。[MOIS NOM] .AllMembers? trimestre,semestre?