問題はWHERE句にあります。 MDXでは、WHERE句をキューブ空間をフィルタリングする手段として使用する必要があります。 SELECT句のすべては、残りの「サブキューブ」に基づいています。
また、計算されたメンバーは必要ありません。この場合、SUM()関数は冗長です([Measures] [Importe de la factura]で指定された集計関数がSUMであると仮定します)。
は、ここでは上記の持っているフォーマットに近いクエリを記述するための一つの方法... WHERE句は、[受注日]の次元に沿ってセットを指定する方法
SELECT
{
[Measures].[<<measure>>]
} ON 0,
{
[Business Unit].[Division].[Division].Members
} ON 1
FROM
[<<cube>>]
WHERE
{StrToMember("[Order Date].[Date Key].[" + Format(now(), "yyyyMMdd") + "]").Lag(59)
:
StrToMember("[Order Date].[Date Key].[" + Format(now(), "yyyyMMdd") + "]")}
お知らせです。これは基本的には、すべてのディメンションのキューブ全体のスペースを指定します...指定したいセットの日付の次元を除いて "
また、次のようなクエリを書くと、ビット何が起こっているか理解しやすい...
WITH
SET [Past 60 days] AS
StrToMember("[Order Date].[Date Key].[" + Format(now(), "yyyyMMdd") + "]").Lag(59)
:
StrToMember("[Order Date].[Date Key].[" + Format(now(), "yyyyMMdd") + "]")
MEMBER [Measures].[Total Sales Past 60 days] AS
SUM(
[Past 60 days]
,[Measures].[<<measure>>]
)
SELECT
{
[Measures].[Total Sales Past 60 days]
} ON 0,
{
[Business Unit].[Division].[Division].Members
} ON 1
FROM
[<<cube>>]
注:datekeyはYYYYMMDD形式であるため、「StrToMemberは()」式は私のキューブで働くあなたがかもしれないので、あなたは、異なるフォーマットであってもよいです。それを微調整する必要があります。