Ssas MDX:计算不包括周末的天数
我已经有了一个MDX查询,它使用计算成员返回月份层次结构中的天数。我需要做的是添加新的计算成员,返回不包括周末(周六和周日)的天数 下面是我使用AdventureWorksDW2008R2 SE进行的现有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 {
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)