MDX 查询没有 return 任何值,它应该 - 可能是由于 where 子句

MDX query does not return any values, which it should - possibly due to the where clause

我正在尝试使用以下 MDX 查询在 SSRS 中创建数据集:

 SELECT NON EMPTY { [Measures].[Quantity],[Measures].[Total Price],
[Measures]Margin],[Measures].[Profit Margin] } on columns,
NON EMPTY {([Dim Product2].[Product Group], [Dim Product2].[Summary],
[Dim Time].[Open Hour Bucket].allmembers)} on rows
from [theyseemecubin]
where {([Dim Store2].[Store Key].&[1046],[Dim Date].[Calender].[Date].&[2014-11-20])}

我想在其中汇总特定日期某商店的每日销售额。当我只有:

where [Dim Store2].[Store Key].&[1046]

在where子句中,Query返回了正确的数据。但是,当我也尝试插入 Date 时,结果集就什么都没有了,尽管我已经在多维数据集中检查了当天应该售出 14 个单位。

我做错了什么?我是否误解了如何在 MDX 中使用 SQL 等效项 Where StoreKey = 1046 AND Date=2014-11-20

看起来还不错:

SELECT 
  NON EMPTY 
    {
      [Measures].[Quantity]
     ,[Measures].[Total Price]
     ,[Measures].[Margin]
     ,[Measures].[Profit Margin]
    } ON COLUMNS
 ,NON EMPTY 
    {
      (
        [Dim Product2].[Product Group]
       ,[Dim Product2].[Summary]
       ,[Dim Time].[Open Hour Bucket].ALLMEMBERS
      )
    } ON ROWS
FROM [theyseemecubin]
WHERE 
  {
    (
      [Dim Store2].[Store Key].&[1046]
     ,[Dim Date].[Calender].[Date].&[2014-11-20]
    )
  };

您不需要花括号,因为元组就足够了:

SELECT 
  NON EMPTY 
    {
      [Measures].[Quantity]
     ,[Measures].[Total Price]
     ,[Measures].[Margin]
     ,[Measures].[Profit Margin]
    } ON COLUMNS
 ,NON EMPTY 
    {
      (
        [Dim Product2].[Product Group]
       ,[Dim Product2].[Summary]
       ,[Dim Time].[Open Hour Bucket].ALLMEMBERS
      )
    } ON ROWS
FROM [theyseemecubin]
WHERE 
    (
      [Dim Store2].[Store Key].&[1046]
     ,[Dim Date].[Calender].[Date].&[2014-11-20]
    );

元组是一个逻辑 AND 所以是的,它等同于 sql。如果你想做一个合乎逻辑的 OR 你需要稍微改变一下并使用一个集合。

也许需要检查一件事 - 这绝对是会员的全名吗? [Dim Date].[Calender].[Date].&[2014-11-20] ... 大多数 mdx 工具(SSMS 和 MDXstudio)您应该能够将成员拖放到查询窗格中以查看全名。