Count Product was sold 在MDX查询中

Count Product was sold In MDX query

我的 MDX 查询为

SELECT 
  {[Measures].[SaleAMT]} ON COLUMNS
 ,NON EMPTY 
      [Account Date13h].[Date].&[2015-01-01T00:00:00]
    : 
      [Account Date13h].[Date].&[2015-05-05T00:00:00] ON ROWS
FROM [Sale_Period_report];

我想 return 一件商品已售出,例如:

Date         SaleAmt    ProductSold
2015-04-01   20.000     150
2015-04-02   36.212     650
2015-04-05   10.333     65

如果您有衡量售出产品的指标,请使用此查询:

SELECT 
    {[Measures].[SaleAMT], [Measures].[ProductsSold]}  ON COLUMNS,

    NON EMPTY {[Account Date13h].[Date].&[2015-01-01T00:00:00]:
               [Account Date13h].[Date].&[2015-05-05T00:00:00]
              } ON ROWS
    FROM [Sale_Period_report]

如果您没有这样的度量,我假设您的多维数据集中有一个产品层次结构,例如 Products.Product

在那种情况下,您必须创建一个计算成员,它将为您提供计数。

WITH MEMBER [Measures].[ProductsSold] AS
COUNT(
        EXISTS(Products.Product.CHILDREN, 
        {[Account Date13h].[Date].&[2015-01-01T00:00:00]:[Account Date13h].[Date].&[2015-05-05T00:00:00]},
        "Sales"       
     )

然后是一样的:

SELECT 
    {[Measures].[SaleAMT], [Measures].[ProductsSold]}  ON COLUMNS,

    NON EMPTY {[Account Date13h].[Date].&[2015-01-01T00:00:00]:
               [Account Date13h].[Date].&[2015-05-05T00:00:00]
              } ON ROWS
    FROM [Sale_Period_report]

我假设您有一个名为 Sales 的度量值组。

为了获得更好的答案,您必须提供更多详细信息。

希望对您有所帮助!

反对 AdvWrks COUNTEXISTING 和交叉连接的这种组合似乎给了我一个可变的结果——这个结果实际上意味着什么我有点不确定:

WITH  
  MEMBER [Measures].[Count] AS 
    Count
    (
      (EXISTING 
          [Product].[Product Categories].[Product]
        * 
          [Measures].[Internet Sales Amount])
    ) 
SELECT 
  {
    [Measures].[Internet Sales Amount]
   ,[Measures].[Count]
  } ON COLUMNS
 ,
    [Date].[Calendar].[Date].&[20070701]
  : 
    [Date].[Calendar].[Date].&[20070731] ON ROWS
FROM [Adventure Works];

如此适合您的立方体,它可能看起来像:

WITH  
  MEMBER [Measures].[ProductsSold] AS 
    Count
    (
      (EXISTING 
          Products.Product.members
        * 
          [Measures].[SaleAMT])
    ) 
SELECT 
  {
    [Measures].[SaleAMT]
   ,[Measures].[ProductsSold]
  } ON COLUMNS
 ,NON EMPTY 
    {
        [Account Date13h].[Date].&[2015-01-01T00:00:00]
      : 
        [Account Date13h].[Date].&[2015-05-05T00:00:00]
    } ON ROWS
FROM [Sale_Period_report];
WITH MEMBER [Measures].[ProductsSold] AS
    COUNT(NonEmpty([AccSetting].[AccID].[AccID].ALLMEMBERS, [Measures].[SaleAMT]))

我使用这个查询和 OLAP return 正确地满足了我的要求