私は SSAS、OLAP、MDX 構文を初めて使用します。
したがって、(SSAS へのリンク サーバーMDX
によって) キューブをクエリするためにこれがTSQL
あり、正常に動作します。
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 Agent によってフィルター処理されます[Vw Agenti] = 005
。
クエリの目的は、エージェントが会社のトップ 50 ブランドをどのように販売しているかを調べることです。
クエリは正常に機能しますが、このエージェントが販売していないブランドが 1 つあり、空の行を表示する必要があります。
下の図は、位置 (ランク) 31 に対する欠落レコードを示しています。
概念は理解してNON EMPTY
いますが、空のレコードも表示する正しい構文が見つかりません。
MDX をどのように変更すればよいですか?
削除しようとしましNON EMPTY
たが、一般的なエラーが発生します:
Cannot execute the query against OLE DB provider "MSOLAP" for linked server "GCUBE"
Top Marca
キューブのディメンションを変更する必要がありますか?
私を助けたり、これを解決するための適切なヒントを提供したりできる人に、事前に感謝します。