2

我只想在 3 月获得发票的不同销售额。我得到了这个 MDX 查询。

我的 MDX 查询:

select 
distinctcount([Measures].[Sales #]) on columns,
--[Measures].[Sales #] on columns,
non empty ([Customer].[Store Group].[Store Group]) on rows
from
(
select 
{
    [Calendar].[Month].[March 2015]
}
ON columns
from [F1_SalesBI])

但是每当我尝试执行此操作时,都会出现以下错误。

Executing the query ...
The Axis0 function expects a tuple set expression for the  argument. A string or numeric expression was used.
Execution complete
4

1 回答 1

0

以下是来自的定义msdnhttps ://msdn.microsoft.com/en-us/library/ms145519.aspx

句法:

DistinctCount(Set_Expression)

当您使用Measures 作为参数时,您正在这样做:

DistinctCount(Numeric_Expression)

像下面这样的东西应该可以正常运行:

WITH 
  SET [mySet] AS 
    [Customer].[Store Group].[Store Group] * {[Measures].[Sales #]} 
  MEMBER [Measures].[setDistCount] AS 
    DistinctCount([mySet]) 
SELECT 
  {
    [Measures].[setDistCount]
   ,[Measures].[Sales #]
  } ON 0
 ,NON EMPTY 
    [Customer].[Store Group].[Store Group] ON 1
FROM 
(
  SELECT 
    {[Calendar].[Month].[March 2015]} ON 0
  FROM [F1_SalesBI]
);

要返回当月的发票数量,请尝试以下操作:

WITH 
  SET [mySet] AS 
    {[Calendar].[Month].[March 2015]}  * {[Measures].[Sales #]} 
  MEMBER [Measures].[setDistCount] AS 
    DistinctCount([mySet]) 
SELECT 
  {
    [Measures].[setDistCount]
  } ON 0
FROM [F1_SalesBI];

如果上面返回 1 则尝试通过此脚本检查集合:

SELECT 
  {} on 0,
  {[Calendar].[Month].[March 2015]}  * {[Measures].[Sales #]}  ON 0
FROM [F1_SalesBI];

这是否只返回 1 个成员?

这个怎么样(没有测量周围的大括号)?:

SELECT 
  {} on 0,
  {[Calendar].[Month].[March 2015]}  * [Measures].[Sales #]  ON 0
FROM [F1_SalesBI];
于 2015-04-01T07:55:45.207 回答