MDX 计算成员 SUM 与 OR



我继承了一些使用计算成员和sum函数的mdx代码。 我需要使用 SUM 但和 OR(联合? 我尝试了各种语法,但它们都出错了。

我有如下代码:

-- uses this date filter
set [as_of_month] as {strtomember("[Date].[Year -  Month].[Month].&[" + cstr(format(cdate("Jul 2019"),"yyyy-MM")) + "-01T00:00:00]")}
-- member 1
member [SIONLY_MTH] as sum([as_of_month] * [Incident Details].[Is SI].[Is SI], [Measures].[Environment Impact Count])
-- member 2
member [MajorNC_Month] as  sum([as_of_month] * 
[Impact].[Impact].&[3] * 
[Non Compliance].[Non Compliance Type].&[Major non-compliance], 
[Measures].[Non Compliance Count]) + 0
-- I need a new member which is an OR of the previous 2, ie, count of
-- SI_ONLYMONTH or [MajorNC_Month] filtered by [as_of_month]
member [LegalSI_EnvSI_Month] as SUM([as_of_month] * {[Incident Details].[Is SI].[Is SI] , [Non Compliance].[Non Compliance Type].&[Major non-compliance]}
, [Measures].[Environment Impact Count]) + 0

最后一个 sum 函数中的集合不起作用,它返回 #Error。

有谁知道如何使用联合集作为 mdx 中 SUM 函数的参数?

谢谢

你的问题基本上涉及维度和层次结构的概念

试试这个

总和( { ([as_of_month] * [事件详情]。[是 SI]。[是SI][影响]。[影响].默认成员[不合规]。[不合规类型].默认成员(, ([as_of_month] * [事件详情]。[是 SI].默认成员*[影响]。[影响].&[3]*[不合规]。[不合规类型].&[重大不合规]( } , [措施]。[环境影响计数](

编辑:包括有关上述查询如何以及为什么工作的说明。 在您的问题中,您有两个集合,其中具有不同的层次结构。所以你必须平衡它们。让我们来看看你的第一组

总和([as_of_month] * [事件详细信息].[是 SI]。[是SI], [措施]。[环境影响计数]( 这并不明确包括"[影响]。[影响]"但是,在执行 SSAS 之前,可以自由地包括 [影响]。[影响].查询中的默认成员。基于这一事实,我通过巧妙地包含属性层次结构的默认成员来平衡您的两个集合,这些成员最初不属于您的集合。

接下来,我将它们封装在"(("中,以指示它们是较大 Set 的元组。然后这两个元组都封装在"{}"中,就像这样 "{(tuple1(,(tuple2(}"

最新更新