【问题标题】:SSAS 2008R2 mdx query using Date and Parent Child in WHERE clause在 WHERE 子句中使用日期和父子的 SSAS 2008R2 mdx 查询
【发布时间】:2013-03-20 07:34:44
【问题描述】:

我是 olap 的新手,使用 AdventureWorksDW2008R2 db 和 Adventure Works 2008R2 olap 和 Adventure Works 多维数据集。

我想使用 T-SQL 根据结果编写一个 mdx 查询:-

select 
  FactResellerSales.OrderDateKey, 
  SUM(FactResellerSales.SalesAmount) as 'Reseller Sales Amount' 

from FactResellerSales with (nolock)

inner join DimEmployee on DimEmployee.EmployeeKey = FactResellerSales.EmployeeKey

where 
   FactResellerSales.OrderDateKey=20070901
   and DimEmployee.FirstName='Jae' and DimEmployee.LastName='Pak'

group by FactResellerSales.OrderDateKey

结果:

OrderDateKey      Reseller Sales Amount
20070901          415046.9295

使用 mdx 查询,我只能执行以下操作:-

SELECT [Measures].[Reseller Sales Amount] ON COLUMNS,

NON EMPTY [Date].[Date].members ON ROWS

FROM [Adventure Works]

WHERE [Employee].[Employees].&[291]

结果是从 2006 年 7 月 1 日到 2008 年 6 月 1 日,每天都有相应的经销商销售额摘要。

我的问题是,在 mdx 查询 WHERE 子句中我该怎么做:

a) 按日期过滤,即 2007 年 9 月 1 日?它不接受日期维度。

b) 使用多级层次结构中的名称“Jae B. Pak”按员工过滤,而不是使用 291 的 EmployeeKey。

【问题讨论】:

  • 您能提供更多关于员工维度结构的信息吗?维度是否有一些可用于名称的属性属性?
  • 抱歉,我是新手。如何提供有关 Employee 维度结构的信息?这是微软提供的示例立方体。

标签: ssas mdx


【解决方案1】:

您需要将员工维度与您感兴趣的日期交叉连接。

以下内容将为您提供价值;

SELECT { [Measures].[Reseller Sales Amount] } ON COLUMNS
FROM [Adventure Works]
WHERE ({ [Employee].[Employee Department].[Employee].[Jae B. Pak]},
         {[Date].[Date].&[20070901] }) 

MDX 中的 where 子句是一个切片器,其行为与 SQL where 子句不同(值得一读)。以下对行的交叉连接将在不使用切片器的情况下提供相同的结果,但会在结果中包含维度属性。

SELECT { [Measures].[Reseller Sales Amount] } ON COLUMNS,
CROSSJOIN({ [Employee].[Employee Department].[Employee].[Jae B. Pak]}, {[Date].[Date].&[20070901] }) ON Rows
FROM [Adventure Works]

最后,如果你想基于'SQL Like'返回,你可以使用instr(下面给出了名字包含ja的所有员工)

SELECT [Measures].[Reseller Sales Amount] ON COLUMNS,
{FILTER([Employee].[Employees].allmembers,
instr([Employee].[Employees].currentmember.member_caption,'Ja')>0) *  [Date].[Date].&[20070901]} ON ROWS
FROM [Adventure Works] 

希望这会让你继续前进

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多