如何在矩阵s-s-rS中显示空行和列

Posted

技术标签:

【中文标题】如何在矩阵s-s-rS中显示空行和列【英文标题】:How to display empty rows and columns in matrix s-s-rS 【发布时间】:2015-09-17 12:04:14 【问题描述】:

我有一份报告,它按 productID 和 productType 的列和行以及 productValue 的值按周分组。



即使数据不存在,我也需要显示所有星期和 productType。

这是我的 mdx 查询

SELECT NON EMPTY 
        [Measures].[Distributor Sale Out], 
        [Measures].[Distributor Sale Out Trend]

ON COLUMNS, 

NON EMPTY  
          ([Date].[Calendar Week].[Calendar Week].ALLMEMBERS * 
           [Distributors].[Distributor].[Distributor].ALLMEMBERS * 
           [Distributors].[DistributorID].[DistributorID].ALLMEMBERS * 
           [Distributors].[City].[City].ALLMEMBERS * 
           [Product].[SKU].[SKU].ALLMEMBERS *
           [Product].[Product].[Product].ALLMEMBERS *
           [Date].[Calendar Year].[Calendar Year].ALLMEMBERS * 
           [SaleType].[SaleType].[Sale Type].ALLMEMBERS * 
           [SaleType].[Sale Type Id].[Sale Type Id].ALLMEMBERS )  

DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
           FROM ( SELECT ( STRTOSET(@DistributorsDistributorID, CONSTRAINED) ) ON COLUMNS 
                 FROM ( SELECT ( STRTOSET(@DateCalendarYear, CONSTRAINED) ) ON COLUMNS 
                         FROM [EFES SCM]
            )) 

任何帮助将不胜感激 谢谢

【问题讨论】:

【参考方案1】:

尝试删除mdx 中的两个NON EMPTY 实例,看看会发生什么?

SELECT 
  
    [Measures].[Distributor Sale Out]
   ,[Measures].[Distributor Sale Out Trend]
   ON COLUMNS
 ,
      [Date].[Calendar Week].[Calendar Week].ALLMEMBERS*
      [Distributors].[Distributor].[Distributor].ALLMEMBERS*
      [Distributors].[DistributorID].[DistributorID].ALLMEMBERS*
      [Distributors].[City].[City].ALLMEMBERS*
      [Product].[SKU].[SKU].ALLMEMBERS*
      [Product].[Product].[Product].ALLMEMBERS*
      [Date].[Calendar Year].[Calendar Year].ALLMEMBERS*
      [SaleType].[SaleType].[Sale Type].ALLMEMBERS*
      [SaleType].[Sale Type Id].[Sale Type Id].ALLMEMBERS
  
  DIMENSION PROPERTIES 
    MEMBER_CAPTION
   ,MEMBER_UNIQUE_NAME
   ON ROWS
FROM 
(
  SELECT 
    StrToSet
    (@DistributorsDistributorID
     ,CONSTRAINED
    ) ON COLUMNS
  FROM 
  (
    SELECT 
      StrToSet
      (@DateCalendarYear
       ,CONSTRAINED
      ) ON COLUMNS
    FROM [EFES SCM]
  )
);

【讨论】:

谢谢,当我删除 NonEmpty 时,结果是正确的,但它需要很多时间。大约 4 分钟生成报告 @Nastya 报告运行缓慢是另一个问题。它返回报告的行数是多少?您在行上的交叉连接非常大,我们可以将 NonEmpty 应用于交叉连接中的某些层次结构还是需要查看每个空单元格? 很多行)我只对我需要的层次结构应用非空。在查询设计器中查询工作很快,但在报告中很慢 我怀疑在报告中呈现数据需要时间 - 如果您尝试返回 100,000 行,那么报告中的速度会很慢!

以上是关于如何在矩阵s-s-rS中显示空行和列的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏 s-s-rS 2008 矩阵中最左边的列?

如何使 s-s-rs 矩阵中的列不可见

按s-s-rS中的特定列名矩阵排序

如何在 s-s-rS 2008 的矩阵中做加权平均(sumproduct/total)

如何将文本框添加到 s-s-rS 项目中的现有矩阵?

s-s-rS 跨行组和列组计算计数