【发布时间】:2012-05-11 15:01:55
【问题描述】:
我对 SSAS、OLAP 和 MDX 语法非常陌生。
所以我有这个MDX 来通过TSQL(通过链接服务器到 SSAS)查询多维数据集,它工作正常:
select * from openquery(GCUBE,
'SELECT NON EMPTY { [Measures].[Valore] } ON COLUMNS,
NON EMPTY {
( [Prodotti].[Top Marca].[Top Marca].ALLMEMBERS
* [Prodotti].[Top Codice].[Top Codice].ALLMEMBERS
* [Agenti].[Vw Agenti].[Vw Agenti].ALLMEMBERS
* [Calendario].[AnnoMese].[Mese].ALLMEMBERS
* [Prodotti].[Ordinamento].[Ordinamento].ALLMEMBERS
* [Prodotti].[Top].[Top].ALLMEMBERS )
}
DIMENSION PROPERTIES MEMBER_CAPTION
ON ROWS FROM ( SELECT ( { [Calendario].[Anno].&[2012] } )
ON COLUMNS FROM ( SELECT ( { [Agenti].[Vw Agenti].&[005] } )
ON COLUMNS FROM [Vendite])) WHERE ( [Calendario].[Anno].&[2012] )'
)
嗯,[Prodotti].[Top Marca] 是基于包含 50 个最畅销品牌的表格的维度,此 MDX 由特定 ID 代理 [Vw Agenti] = 005 过滤。
查询的目的是了解代理商如何销售公司的 50 个畅销品牌。
查询正常,但有一个品牌不是该代理商销售的,我需要显示空行。
下图显示了相对于位置(排名)31的缺失记录。
我了解NON EMPTY 的概念,但我找不到正确的语法来显示空记录。
我应该如何修改 MDX?
我试图删除NON EMPTY,但我收到一个一般错误:
Cannot execute the query against OLE DB provider "MSOLAP" for linked server "GCUBE"
是否需要更改多维数据集中的维度Top Marca?
提前感谢任何可以帮助我或提供解决此问题的正确提示的人。
【问题讨论】:
-
删除 NON EMPTY 时出现什么错误?
-
@Marc,我添加了有关该错误的更多信息,但如您所见,这是一个通用错误
-
你为什么要在列和行上都使用 Agenti?