Ssas MDX:计算不包括周末的天数

Ssas MDX:计算不包括周末的天数,ssas,mdx,Ssas,Mdx,我已经有了一个MDX查询,它使用计算成员返回月份层次结构中的天数。我需要做的是添加新的计算成员,返回不包括周末(周六和周日)的天数 下面是我使用AdventureWorksDW2008R2 SE进行的现有MDX查询 WITH MEMBER [Measures].[Num of Days] AS COUNT ( Descendants ( [Date].[Calendar], [Date].[Calendar].[Date]) ) SELECT {

我已经有了一个MDX查询,它使用计算成员返回月份层次结构中的天数。我需要做的是添加新的计算成员,返回不包括周末(周六和周日)的天数

下面是我使用AdventureWorksDW2008R2 SE进行的现有MDX查询

WITH 
  MEMBER [Measures].[Num of Days] AS
    COUNT ( 
      Descendants ( [Date].[Calendar],  [Date].[Calendar].[Date]) 
    )

SELECT 
  { [Measures].[Num of Days] } ON COLUMNS,  
  [Date].[Calendar].[Month].ALLMEMBERS ON ROWS
FROM [Adventure Works]
现有输出示例:

+----------------+-------------+
|   Month Year   | Num of Days |
+----------------+-------------+
| July 2005      |          31 |
| August 2005    |          31 |
| September 2005 |          30 |
+----------------+-------------+
预期产出样本:

+----------------+-------------+--------------------------------+
|   Month Year   | Num of Days | Num of Days Excluding Weekends |
+----------------+-------------+--------------------------------+
| July 2005      |          31 |                             21 |
| August 2005    |          31 |                             23 |
| September 2005 |          30 |                             22 |
+----------------+-------------+--------------------------------+

标准的解决方案是在时间维度中有一个层次结构,包括一周中的几天(周一,…周日)。一旦您完成了此操作,您就可以直接使用这些成员进行筛选。您甚至可以只使用周末/不使用周末来创建层次结构。最好的解决方案取决于您在模式中使用的度量,最好的方法是始终使用标准MDX聚合,并避免对一组成员使用SUM/COUNT

其他解决方案可能取决于您如何实现层次结构,您可以使用and函数


老实说,我没有检查过

 Count(  FILTER( Descendants ( [Date].[Calendar],  [Date].[Calendar].[Date]) ,  WeekDay( [Date].[Calendar].currentmember.properties("KEY"), 2) <= 5 ) ) 

Count(筛选器(子体([Date].[Calendar],[Date].[Calendar].[Date]),工作日([Date].[Calendar].currentmember.properties(“KEY”),2)这是日期维度的当前结构。它已经有[Date].[Day Name]属性,该属性的成员从星期天到星期六。我可以使用此属性实现预期的输出吗?非常感谢您的帮助。我稍微修改了您的代码,这解决了我的问题:)。
Count(筛选子体([Date].[Calendar],[Date].[Calendar].[Date]),工作日([Date.[Calendar].CurrentMember.Member\u标题,2)