我已经有一个MDX查询,它使用计算成员返回Month Hierarchy中的天数。我需要做的是添加新的计算成员,该成员返回不包括周末(周六和周日)的天数。
以下是我使用Adventure Works DW 2008R2 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 |
+----------------+-------------+--------------------------------+
答案 0 :(得分:3)
此标准解决方案是在时间维度中包含一周中的日期(星期一,...星期日)。一旦你这样做,你可以直接使用这些成员过滤。您甚至可以在周末/周末进行层次结构。最佳解决方案取决于您在架构中采取的措施,最好的方法是使用标准MDX聚合并避免在一组成员上使用SUM / COUNT。
其他解决方案可能取决于您实施层次结构的方式,您可以使用Weekday和filter功能。
老实说,我还没检查过
Count( FILTER( Descendants ( [Date].[Calendar], [Date].[Calendar].[Date]) , WeekDay( [Date].[Calendar].currentmember.properties("KEY"), 2) <= 5 ) )