我对 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
多维数据集中的维度吗?
提前感谢任何可以帮助我或提供解决此问题的正确提示的人。