不同的计数表达式ssas

时间:2014-09-04 19:58:32

标签: count ssas distinct

我想在OLAP Cube中创建一个新的计算成员来计算不同客户端的数量,我试图编写这个表达式,但我不知道如何在MDX中创建它:

Distinct count ([DIM.Clients].[CuNumber], where Sum([Measures].[QQT - FACT Ventes] >=1)

请帮忙!

谢谢!


嗨,谢谢你的回复,

我花了几天时间尝试使查询工作,但没有大的进展。 首先,我在我的数据仓库上运行了一个SQL查询,以了解我应该在OLAP多维数据集上获得什么结果, 这是我的SQL查询:

use [Warehouse]

select count(*) as count_row

From 
(Select  F.FaCunumberX
from [dbo].[Dim_FaClients] F
inner join [dbo].[FACT_Ventes] V on F.[SK_FAClients] = V.SK_FaClients
inner join [dbo].[Dim_Date] D on D.SK_Date = V.SK_Date
where
D.Year = '2014'
Group by F.FaCunumberX
having  SUM(V.QQT) >= 1) test

我得到的结果是:26026

在我的OLAP多维数据集上,我尝试了几个查询,但是我没有得到相同的结果

这是我尝试过的一些表达方式:

WITH SET MySet AS

(Filter({[DIM FA Clients].[FaCuNumberX].[FaCuNumberX]}*{([Dim Date].[Year].&[2014],[Measures].[QQT - Fact Ventes])},[Measures].[QQT - Fact Ventes]>1 or [Measures].[QQT - Fact Ventes]=1)

MEMBER MEASURES.SETDISTINCTCOUNT AS
DISTINCTCOUNT(MySet)
SELECT {MEASURES.SETDISTINCTCOUNT} ON 0
FROM [CubeAll]

我得到的结果是:31575

我也尝试了这个表达式:

DistinctCount(Filter([DIM.Clients].[CuNumber].[CuNumber].Members,
                     [Measures].[QQT - FACT Ventes] >= 1
                    )
             )

相同的结果:31575

真诚地,我不知道我的表情中缺少什么。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这就像

DistinctCount(Filter([DIM.Clients].[CuNumber].[CuNumber].Members,
                     [Measures].[QQT - FACT Ventes] >= 1
                    )
             )

有关详细信息,请参阅FilterDistinctCount的文档。