SQL Server 2012:如何编写MDX查询返回员工计数>1的结果?
解决SQL Server 2012 MDX过滤员工计数大于1的问题
嘿,刚好帮你搞定这个需求!你现在的查询是把所有员工ID都列出来了,要只保留员工计数大于1的记录,用Filter函数在行轴上做筛选就可以了,直接修改你的查询就行:
SELECT NON EMPTY {[Measures].[Employee Count]} ON COLUMNS, -- 用Filter遍历每个员工ID,只保留计数>1的成员 Filter( [Employee].[Employee ID].[Employee ID].Members, [Measures].[Employee Count] > 1 ) ON ROWS FROM [Human Capital]
简单解释下逻辑:
Filter函数会逐个检查[Employee].[Employee ID]层级下的每个成员,计算它对应的[Employee Count]度量值- 只有当度量值大于1时,这个员工ID才会被保留在行轴上展示
- 因为你用了
NON EMPTY,空值的情况已经被排除,所以不用额外处理计数为0或者NULL的情况
这个写法完全兼容SQL Server 2012的MDX语法,放心用就好~
内容的提问来源于stack exchange,提问作者Shaji
相关产品推荐
相关产品推荐

