Как передать многозначные параметры в вычисляемых членах MDX? - PullRequest
1 голос
/ 18 апреля 2011

На самом деле я работаю над кубом SSAS с использованием служб отчетов SQL Server.Чтобы отфильтровать поле, мне нужно использовать вычисляемый элемент, который конкретно использует параметр.

Вот мой вычисляемый элемент:

WITH MEMBER [Measures].[Comparable Stock Room] AS Iif (
    [Stock room].[Stock room code].currentMember IS (Iif (STRTOMEMBER(@StockRoomCode).Count = 1, STRTOMEMBER(@StockRoomCode), xxx)),
    0,
    [Measures].[Retail sales amount invoiced including tax] 
)

Это хорошо работает, если в @StockRoomCode есть только одинзначение.Но я не знаю, как заставить это работать, когда параметр имеет несколько значений.Как заменить «ххх»?Можете ли вы помочь мне или скажите, как сделать это лучше, спасибо!

1 Ответ

1 голос
/ 20 апреля 2011

Вы можете создать вычисляемый элемент, объединяющий элементы, по которым вы хотите отчитаться, и определить меру в единицах вычисляемого элемента, например:

with member [Stock Room].[Stock room code].[foo] as
aggregate (strtoset (@StockRoomCode)),

member [Measures].[Comparable Stock Room] as
([Stock Room].[Stock room code].[foo],
 [Measures].[Retail sales amount including tax])

(Примечание: не проверено, только сверхумоей головы).Или,

with set [foo] as strtoset (@StockRoomCode),

member [Measures].[Comparable Stock Room] as
       sum ([foo], [Measures].[Retail sales amount including tax])

select [Measures].[Comparable Stock Room] on columns,
       (Slicing dimension such as time) on rows
  from [cube]
 where [other slice]

Заметьте, с помощью любого, получите правильное выражение set и протестируйте сначала.

...