web-dev-qa-db-ja.com

MDX-過去6か月を動的に取得する

DimAccountsというDimテーブルがあります。ユーザーアカウントと、アカウントが作成された日付を示しています。例えば:

enter image description here

過去6か月に動的に作成されたアカウントのリストを取得したいと思います。たとえば、今日は09\01\2016です。したがって、私のアカウントのリストは、01-08-2015から09-01-2016までに作成されたアカウントになります。このCreatedOnフィールドには階層がなく、会計次元の属性であることに注意してください。

3
Shmuel Milavski

ディメンションのCreatedOn属性のValueColumnプロパティを適切に設定していると(MemberValueが日付データ型を返すように)、以下が機能するはずです。

select {[Measures].[Your Measure Here]} on 0,
[DimAccounts].[AccountPK].[AccountPK].Members on 1
from [Your Cube]
where {
 Filter(
  [DimAccounts].[CreatedOn].[CreatedOn].Members
  ,[DimAccounts].[CreatedOn].CurrentMember.MemberValue > DateAdd("m",-6,Now())
 )
}

または、すべてのユーザーが行にドロップできるように名前付きセットを作成する場合は、キューブデザイナの計算タブに次のように配置します。

CREATE SET CurrentCube.[Accounts Created In Last 6 Months]
as
Exists(
 [DimAccounts].[AccountPK].[AccountPK].Members,
 Filter(
  [DimAccounts].[CreatedOn].[CreatedOn].Members
  ,[DimAccounts].[CreatedOn].CurrentMember.MemberValue > DateAdd("m",-6,Now())
 )
);
5
GregGalloway