0

私は 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 に対する欠落レコードを示しています。

MDX クエリの結果

概念は理解してNON EMPTYいますが、空のレコードも表示する正しい構文が見つかりません。

MDX をどのように変更すればよいですか?

削除しようとしましNON EMPTYたが、一般的なエラーが発生します:

Cannot execute the query against OLE DB provider "MSOLAP" for linked server "GCUBE"

Top Marcaキューブのディメンションを変更する必要がありますか?

私を助けたり、これを解決するための適切なヒントを提供したりできる人に、事前に感謝します。

4

1 に答える 1

1

私は SSAS/TSQL の専門家ではありませんが、最初に簡単なリクエストを試してみます。

SELECT 

[Measures].[Valore]ON COLUMNS, 

NON EMPTY [Prodotti].[Top Marca].[Top Marca].ALLMEMBERS ON ROWS 

FROM ( SELECT { [Calendario].[Anno].&[2012] } ON COLUMNS 
  FROM ( SELECT { [Agenti].[Vw Agenti].&[005] } ON COLUMNS 
    FROM [Vendite] 
  )
) '

この TSQL を使用せずに実行する方法はありますか?

于 2012-05-13T00:26:38.833 に答える