SSAS:按给定日期过滤的MDX计算成员

时间:2014-10-31 02:07:06

标签: ssas mdx

我很难在MDX中找到一个计算成员。

源表如下所示。

--------------------------------------
| Status     | Promised Date          |
-------------------------------------- 
| In-process | 2014-09-15 00:00:00.000|
--------------------------------------
| Quotation  | 2014-07-20 00:00:00.000|
--------------------------------------
| In-process | 2014-10-25 00:00:00.000|
--------------------------------------

有一个计算行数的度量。它被称为[Measures]。[SVC Call Count]。

当用户从日期维度中选择日期时,将提供日期。

计算出的成员应该在给定日期之前的14天内返回所有svc调用的行计数。
例如,2014-10-20是给定日期。在这种情况下,只应计算第一行。 在T-SQL

中实现这一目标非常简单
SELECT Count(*) 
FROM [SVC Call] 
WHERE 
  CALLSTATUS='In-process' and DATEADD("d",14,Promised Date)<= A given Date.

但我是MDX的新手,并且不知道如何在MDX中这样做。目前的尝试如下:

Sum
(
  Filter
  (
        [Service call].[Promised end date].[Promised end date].MEMBERS
      - 
        [Service call].[Promised end date].&[1900-01-01T00:00:00]
    - 
      [Service call].[Promised end date].[All].UnknownMember
   ,
      VBA!Datediff
      ("d"
       ,[Service call].[Promised end date].CurrentMember.MemberValue
       ,LinkMember
        (
          [DATE].[Date].CurrentMember
         ,[DATE].[Year - Quarter - Month - Week - Date]
        ).MemberValue
      )
    >= 0
  )
 ,[Measures].[Service call count]
)

任何人都可以向我提供建议或提示吗?

0 个答案:

没有答案