2016-11-11 9 views
0

より良い質問タイトルが必要です。 OLAPキューブのデータを使用するSQL Server(2012)から呼び出す一連のクエリがあります。このデータはOPENQUERY電話番号OpenQuery経由のMDXクエリで期待されるデータが返されない

SELECT "[Time Period].[Month Full Code].[Month Full Code].[MEMBER_CAPTION]" AS timestring 
FROM openquery([SSAS_cube],' 
    SELECT { } ON 0, 
    NONEMPTY ({ 
     DESCENDANTS({[Time Period].[Month Full Code].[Month Full Code]}) 
    }) ON 1 
    FROM [thecube] 
    WHERE (
     [Geography].[Geo County Area].&[1204000057] 
    ); 
') 

となります。このデータは返されません。

SELECT { } ON 0, 
NONEMPTY ({ 
    DESCENDANTS({[Time Period].[Month Full Code].[Month Full Code]}) 
}) ON 1 
FROM [thecube] 
WHERE (
    [Geography].[Geo County Area].&[1204000057] 
); 

この結果セットには、(必要に応じてその他のパラメータを持つ)を得領域のデータを持っていた利用可能時間の単一の列です:私たちはSSASサーバー上で直接MDXを実行する場合は、我々はデータを入手できますか。私は問題は、MDXの結果にカラム "ヘッダ"がないことだと思いますが、単純にしてもSELECT * FROM openquery(...)はデータを返しません。 openqueryコールを介してこのデータを返すにはどうすればよいですか?

+0

OPENQUERYに代わるものはこれです:このアドインの単純さとパフォーマンスはとても良く、私は非常に十分にお勧めすることはできませんあるようhttps://olapextensions.codeplex.com/我々は、最近OPENQUERYを使用することはありません。 SQL Server 2016にアップグレードすると、このプロジェクトもサポートされるように更新されました。 – whytheq

答えて

2

これは、リンクされたサーバーを経由して返されるMDXクエリ結果がテーブルにフラット化されたときに行われるフラット化の関数です。 SSMSはクエリ結果を表示するときにテーブルではなくCellSetオブジェクトを使用するので、柔軟性があります。

列に何かがあることを確認してください。リンクされたサーバーで正常に動作するようにしてください。

SELECT { [Measures].CurrentMember } ON 0, 
NONEMPTY ({ 
    DESCENDANTS({[Time Period].[Month Full Code].[Month Full Code]}) 
}) ON 1 
FROM [thecube] 
WHERE (
    [Geography].[Geo County Area].&[1204000057] 
); 
+0

私はそれがCellSetでもっと読む必要があります。 – wergeld

関連する問題