在WHERE子句中使用日期和父子项的SSAS 2008R2 mdx查询

在WHERE子句中使用日期和父子项的SSAS 2008R2 mdx查询,ssas,mdx,Ssas,Mdx,我是使用AdventureWorksDW2008R2 db和AdventureWorks2008R2 olap与AdventureWorks多维数据集的olap新手 我想使用T-SQL根据结果编写mdx查询:- select FactResellerSales.OrderDateKey, SUM(FactResellerSales.SalesAmount) as 'Reseller Sales Amount' from FactResellerSales with (nolock

我是使用AdventureWorksDW2008R2 db和AdventureWorks2008R2 olap与AdventureWorks多维数据集的olap新手

我想使用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。

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

以下内容将为您提供正确的值

SELECT { [Measures].[Reseller Sales Amount] } ON COLUMNS
FROM [Adventure Works]
WHERE ({ [Employee].[Employee Department].[Employee].[Jae B. Pak]},
         {[Date].[Date].&[20070901] }) 
MDX中的where子句是一个切片器,其行为不同于SQLWHERE子句(值得一读)。下面的行交叉连接将提供相同的结果,而不使用切片器,但将在结果中包含维度属性

SELECT { [Measures].[Reseller Sales Amount] } ON COLUMNS,
CROSSJOIN({ [Employee].[Employee Department].[Employee].[Jae B. Pak]}, {[Date].[Date].&[20070901] }) ON Rows
FROM [Adventure Works]
最后,如果您希望基于“类似SQL”的返回,可以使用instr(以下给出了名称中包含ja的所有员工)


希望这能让你继续

你能提供更多关于员工维度结构的信息吗?维度是否有一些可能用于名称的属性属性?对不起,我是新手。如何提供有关员工维度结构的信息?它是Microsoft提供的示例多维数据集。
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]