【问题标题】:using variables in MDX query在 MDX 查询中使用变量
【发布时间】:2015-01-12 12:35:13
【问题描述】:

我有一个 MDX 查询如下

 SELECT NON EMPTY 
 {[Measures].[Total  Value] } 
 DIMENSION PROPERTIES CHILDREN_CARDINALITY, 
 PARENT_UNIQUE_NAME ON COLUMNS, 
 NON EMPTY 
 {      
   CROSSJOIN(    
          {[Supplier].[Supplier Name].[All]},
          {[Warehouse].[Warehouses].[All]},
          {[Buyer].[Business Unit].[All]}
   ),
   CROSSJOIN(
          {[Supplier].[Supplier Name].[All].Children},
          {[Warehouse].[Warehouses].[All].Children},
          {[Buyer].[Business Unit].[All].Children}
   )
} 
DIMENSION PROPERTIES CHILDREN_CARDINALITY, 
PARENT_UNIQUE_NAME ON ROWS FROM [InventoryAge]
WHERE ( [Calendar].[Report Days].[All Members].&[All].&[WantInReport].&[2].&[20141031] )

我在 SSIS 包中使用此查询并提取数据。我想使用 SSIS 包参数将值“20141031”(该值等于当前日期)传递给查询。我怎样才能做到这一点

【问题讨论】:

    标签: ssis sql-server-2008-r2 mdx


    【解决方案1】:

    MDX 不接受参数。 SSRS 有一些技巧可以解决这个问题,但在 SSIS 的情况下,您需要将查询放入表达式并从那里填充日期。

    看起来像这样:

    ...
    PARENT_UNIQUE_NAME ON ROWS FROM [InventoryAge]
    WHERE ( [Calendar].[Report Days].[All Members].&[All].&[WantInReport].&[2].&[" 
    + @[User::MyStringDate] + "] )"
    

    编辑:我还应该注意,您可以在 MDX 中找到今天的日期,在计算成员中使用该日期,并将其与您的查询交叉连接。以下是有关此的更多信息: http://sqlblog.com/blogs/mosha/archive/2007/05/23/how-to-get-the-today-s-date-in-mdx.aspx

    【讨论】:

    • 我使用了获取今天的日期方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多