2011-11-23 13 views
0
SELECT COUNT (DISTINCT S.PK_Submission) 
FROM Fact_Submission FS, Submission S 
WHERE 
FS.FK_Submission = S.PK_Submission 
AND FS.FK_Submission_Date >= 20100101 
AND FS.FK_Submission_Date <= 201

我已經試過這樣:計數的MDX不同(從SQL查詢轉換)

SELECT 
{[Measures].[Fact Submission Count]} ON AXIS(0), 
Distinct({[Submission].[PK Submission] }) ON AXIS(1) 
FROM [Submission] 
WHERE 
([Date].[Calendar Year].[2010]) 

,但結果是一樣的

任何想法如何在MDX寫的嗎?我很新,所以還沒有弄明白。

回答

2

這是正確的答案:

WITH SET MySet AS 
{[Measures].[Fact Submission Count]} 
* 
DISTINCT({ EXCEPT([Submission].[PK Submission].Members, [Submission].[PK Submission].[All]) }) 
MEMBER MEASURES.DistinctSubmissionCount AS 
DISTINCTCOUNT(MySet) 
SELECT {MEASURES.DistinctSubmissionCount} ON 0 
FROM [Submission] 
WHERE 
([Date].[Calendar Year].[2010]) 

我已經排除「全部」行,因爲它也被COUNT函數計算,所以我總是有+1。