MDX查询:过滤和过滤的总和

时间:2013-11-24 16:39:04

标签: sql filter mdx

我刚刚开始学习MDX,我想做一个这样的查询: 按成本过滤数据(我已经进行了查询但没有总和),如下所示:

SELECT [Measures].[SumOfSelled] ON 0,

FILTER ([From].[From].[City].members, [Measures].[SumOfSelled]>7000) ON 1

FROM [BI-Avia]

它正在运作

没关系 但!!! 我还需要在城市

的过滤结果下显示过滤元素的总和

我知道如何单独找到它:

with member [Measures].FilteredSum as sum(filter([From].From].City].members,Measures].SunOfSelled]>7000),Measures].[SumOfSelled]) select{SumOfSelled} on 0 from [BI-AVIA]

但我必须一起展示!!过滤下的SUM!二合一!我需要你的帮助!我觉得你很清楚!!!

1 个答案:

答案 0 :(得分:0)

只需在[From].[From]层次结构上定义计算成员,然后使用集合的并集(在MDX中缩写为+)组合两个查询:

with member [From].[From].FilteredSum as 
     sum(filter([From].[From].City].members, Measures].SumOfSelled]>7000))

SELECT [Measures].[SumOfSelled]
       ON 0,

       FILTER ([From].[From].[City].members, [Measures].[SumOfSelled]>7000)
       +
       { [From].[From].FilteredSum }
       ON 1

FROM [BI-Avia]

您可以将过滤器定义为WITH子句中的一个集合,这样可以避免Analysis Services对其进行两次计算。