Проблема в вашем предложении WHERE. В MDX предложение WHERE следует использовать как средство фильтрации пространства куба. Тогда все в предложении SELECT основано на оставшемся «подкубе».
Кроме того, нет необходимости в вычисляемом элементе ... функция SUM () в этом случае избыточна (при условии, что функция агрегирования, заданная для [Меры]. [Importe de la factura] равна SUM).
Вот один из способов написать запрос, близкий к формату, который у вас есть выше ...
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") + "]")}
Обратите внимание, как предложение WHERE определяет набор по измерению [Дата заказа]. Это в основном говорит, что дайте мне все пространство куба по всем измерениям ... за исключением измерения даты заказа, для которого я просто хочу, чтобы набор был указан ".
Кроме того, если вы напишите запрос наподобие следующего, вам будет немного легче понять, что происходит ...
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>>]
Примечание. Формула "StrToMember ()" работает в моем кубе, поскольку ключ даты имеет формат ГГГГММДД. Ваш может быть в другом формате, поэтому вам, возможно, придется настроить его.