我想在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
真诚地,我不知道我的表情中缺少什么。
感谢您的帮助!
答案 0 :(得分:1)
这就像
DistinctCount(Filter([DIM.Clients].[CuNumber].[CuNumber].Members,
[Measures].[QQT - FACT Ventes] >= 1
)
)
有关详细信息,请参阅Filter和DistinctCount的文档。