2014-09-04 79 views
0

我想在OLAP Cube中創建一個新的計算成員來計算不同客戶端的數量,我試圖編寫此表達式,但我不知道如何在MDX中創建它:Distinct Count表達式ssas

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

此立方體是否只有一個維度([DIM])? – 2014-09-04 20:09:30

+0

有5個維度,但在這種情況下,我只使用「客戶」維度 – 2014-09-04 20:16:13

+0

查看此處的「區別計數」示例是否可以幫助您:http://docs.intersystems.com/ens20121/csp/docbook/DocBook.UI.Page.cls? KEY = D2GMDX_ch_calculated_members – 2014-09-04 20:21:01

回答

1

這會是這樣的

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

FilterDistinctCount獲取細節。