Подсчет различается в MDX (конвертировать из запроса SQL) - PullRequest
0 голосов
/ 23 ноября 2011
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 <= 20101231

Я пробовал это:

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

но результат тот же

Есть идеи, как написать это в MDX? Я довольно новичок в этом, так что до сих пор не понял это.

1 Ответ

2 голосов
/ 23 ноября 2011

Это правильный ответ:

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.

...