當我運行此:調查MDX DistinctCount差異
WITH MEMBER MEASURES.SETDISTINCTCOUNT AS
DISTINCTCOUNT([Student Term].[Student ID].MEMBERS)
SELECT {MEASURES.SETDISTINCTCOUNT} ON 0 ,
[Student Term].[Term Code].&[1151] on 1
FROM [Enrollment]
我得到的用下面的SQL同意學生數(我將把這個正確的計數爲「計數A」):
SELECT COUNT(DISTINCT([student_id]))
FROM dbo.Fact_Enrollments
WHERE Term_Code = '1151'
但不幸的是,當我運行此MDX(使用不同但類似的尺寸)我得到一個不同的計數小於「算A」:
WITH MEMBER MEASURES.SETDISTINCTCOUNT AS
DISTINCTCOUNT([Student Term].[Student ID].MEMBERS)
SELECT {MEASURES.SETDISTINCTCOUNT} ON 0 ,
[Term].[Term Type].[Academic Term].&[1151] ON 1
FROM [Enrollment]
我不知道如何找出第二個mdx查詢中出現了什麼問題(更直接地說,那個「Term」角色出了什麼問題)。起初我以爲也許Dim_Term表沒有完全加入到事實表(Fact_Enrollments),但此查詢其連接兩個,並返回「計數A」(正確的計數):
SELECT COUNT(DISTINCT([student_id]))
FROM dbo.Fact_Enrollments
INNER JOIN dbo.Dim_Term ON Acad_Term_Cd=Term_Code
WHERE Acad_Term_Cd = '1151'
我認爲也許最好的方法是查找進入第一個計數的所有不同學生ID的列表,然後對第二個計數執行相同的操作,並深入查看第一個列表中的那些,但不是其次,但我不知道如何確定導致我看到的CountDistinct結果的學生ID。
我已經嘗試了一些東西超出了我在這裏寫的東西(因爲這已經很長了,所以省略了),但是我一直想出「count A」作爲我的總結果。
如何查找由DistinctCount調用計數的不同成員的列表?
(或者是什麼,發現這個差異的原因的最好辦法)
謝謝您的答覆。您建議的MDX會返回所有唯一學生id的計數(不論那些在學術術語「1151」中有記錄的學生),但我想要的是「Fact_Enrollments」中所有唯一學生ID的計數,其中Acad_Term_Cd(來自Dim_Term表由acad_term_cd = term_code加入)是'1151'(我原來的帖子中的SQL的第二位)。 – David
爲了迴應你猜測關係搞砸了,下面是我所擁有的:在數據源視圖中,Fact_Enrollments和Dim_Term表之間有一個關係...其中Fact_Enrollments.Term_Code(外鍵表)= Dim_Term。 Acad_Term_Cd(主鍵表)。在這兩列中都沒有空值和空白,Fact_Enrollments.Term_Code中的每個值都在Dim_Term.Acad_Term_Cd中找到(這是唯一的)。我應該看到另一個關係嗎? – David