2017-07-03 13 views
0

の取得当社は、このようになりますMDXクエリを持っている:は、SSASでGETDATE()、DATEDIFF(MDX)クエリ

WITH Member [Measures].[Z] AS (DATEADD("H",-1,[X].[Y].Member_Caption)) 
SELECT { [X].[Y].Children } ON Rows, 
     { [Measures].[Z] } ON Columns 
FROM ABC 

それは基本的に日時(LastRefresh)を返します。

LastRefresh, Getdate(), datediff(Mins, LastRefresh, Getdate()) 

その同等のSQLクエリは次のとおりです:

select LastRefresh, getdate() as CurrentDate, datediff(Mins, LastRefresh, getdate()) as DateDifference from XYZ 

がどのように私はキューブにMDXで同じことを行うことができます

私の任務は、次の列を返すMDXクエリを作成するのですか?

注:

私たちはただのデータを取得するためにキューブを使用しているとして、任意の新たな措置を作成することはできません、と

+0

あなたの質問は何ですか?私はどこにでも疑問符を見ることができません。 – whytheq

+0

mdxのSQLクエリーを模倣する必要があります –

+0

LastRefreshはキューブに対してmdxで使用できません(最後のリフレッシュメンバーをどこかに追加していない限り!) – whytheq

答えて

0

GETDATE()があるなどの対策を作成するためのアクセスのいずれかの種類を持っていませんSQL関数ですが、あなたはMDXを書いているので、許可されていません。

は、Microsoft SSASを使用している場合は、VBAは、MDX内で許可されて、あなたは現在の日付と時刻を返すためにNow()を使用することができます。

は(!ないSQL版)DateDiffのVBA形式を使用して、あなたはそのように計算を行うことができます。メンバー名の文字列値をVBAが使用する日付オブジェクトに変換するには、おそらくCDate()が必要です。以下のような...

DateDiff("d", CDate([X].[Y].MemberName), Now()) 
関連する問題