2

powerpivot から SSAS に接続するときに、次の問題が発生しました。何らかの理由で mdx クエリによって行が返されず、列名も返されず、powerpivot でエラーが発生した場合。SSMSでこのようなクエリを実行すると、mdxが何も返さない場合は0行、mdxが1行(列名と行自体)を返す場合は2行になります。では、どうにかして SSAS に列名を返すように強制することはできますか? クエリは現在、次のようになっています。

SELECT NON EMPTY {[Measures].[Measure1]} ON COLUMNS,
NON EMPTY {Filter([DimLocalDate].[Date].&[20110101]:[DimLocalDate].[Date].&[20120101],
[JobStatus].[JobStatus].&[1] } ON ROWS
FROM [TheCube]

私のアプリでは、顧客は日付とステータス値を指定できます。結果が見つからない場合、空の結果セットが期待されますが、代わりにエラーが発生しました。ありがとう。

4

2 に答える 2

3

re SSIS エラー: [MEMBER_CAPTION] がデータソースに見つかりません。

あなたの解決策が私を助けてくれてありがとう。SSIS、SSASを使用してフラットファイルレポートを出力するのと同じ問題がありました

他の人がダミーセットを定義するのを助けるために、拡張された例を投稿します。日付は MDX スクリプトに動的に挿入されることに注意してください。

日付のデータが存在しない場合、SSIS は例外をスローするため、結果は返されません。これにより、列の順序が台無しになります

--create a blank set so that data is still returned when there are no results for that date
set [BlankRowSet] as 
([Activity Period].[Days].[Day].&[2014-02-02T00:00:00], [Well].[Location].[Location].&[])

--create the active set as the crossjoin between Days, Wells
set [ActiveSet] as 
nonempty([Activity Period].[Days].[Day].members * [Well].[Location].[Location].members )

SET [RealSet] as IIF(COUNT([ActiveSet]) > 0, [ActiveSet], {[BlankRowSet]}) 


select {[Measures].[Total boe]} ON COLUMNS 
,[RealSet] ON ROWS 
FROM 
(select {[Activity Period].[Days].[Day].&[2014-02-02T00:00:00]:[Activity Period].[Days].[Day].&    [2014-02-02T00:00:00]} on 0 from [Volumes] )

where 
[Scenario].[All Scenarios].[Category].&[PVR Sales Estimates] 
于 2014-02-05T21:46:05.587 に答える
1

NonEmpty 句が void セットを返すかどうかを select の前に確認し、その場合は、powerpivot に少なくとも 1 行返されるダミー セットを行に配置します。何かのようなもの:

WITH 
SET [mySet] as NON EMPTY ({Filter([DimLocalDate].[Date].&[20110101]:[DimLocalDate].[Date].&[20120101], [JobStatus].[JobStatus].&[1] })
SET [myRealSet] as IIF(COUNT([mySet]) > 0, [mySet], {[DummySet]}) 
SELECT NON EMPTY {[Measures].[Measure1]} ON COLUMNS,
[myRealSet] ON ROWS
FROM [TheCube]

役立つだろう?

于 2013-06-06T10:46:19.167 に答える