2017-11-22 18 views
5

Tôi có truy vấn MDX này:Mondrian: tính toán bộ lọc tổng số

with member [Measures].[count] as '[Measures].[NUMBER]' 
     ** member [Measures].[total] as 'sum({[RECORD_TYPE.VALUES].[All VALUEs].children})' ** 
     member [Measures].[% records] as '([Measures].[count]/[Measures].[total])', format_string = "0.0%" 
    select {[Measures].[count], [Measures].[% records], [Measures].[total]} ON COLUMNS, 
    [RECORD_TYPE.VALUE].[1] ON ROWS 
    from [RECORDS] 
    where Crossjoin({[CITY].[LONDON]}, {([DATE.DATE].[20171101] : [DATE.DATE].[20171130])}) 

Tôi đã phát hiện ra rằng đây [tổng] thành viên duy nhất đếm hồ sơ được lọc theo ngày (ghi dữ liệu giữa 20.171.101 và 20.171.130). Nếu tôi chuyển tổng số này thành:

member [Measures].[total] as 'sum({[DATE.DATE].[All DATEs].children})' 

Tôi nhận được tất cả các bản ghi theo khối, bất kể thành phố.

Tôi muốn tổng số này là tổng số bản ghi cho [CITY]. [LONDON] theo hình khối, bất kể loại bản ghi. Bạn có thể cho tôi biết làm thế nào để tôi làm điều này?

Trả lời

1

Tôi không phải là một chuyên gia về Mondrian, nhưng tôi đoán là như sau:

with member [Measures].[count] as '[Measures].[NUMBER]' 
     ** member [Measures].[total] as 'sum({[RECORD_TYPE.VALUES].[All VALUEs].children} * [CITY].[LONDON])' ** 
      member [Measures].[% records] as '([Measures].[count]/[Measures].[total])', format_string = "0.0%" 
     select {[Measures].[count], [Measures].[% records], [Measures].[total]} ON COLUMNS, 
     [RECORD_TYPE.VALUE].[1] ON ROWS 
     from [RECORDS] 
     where Crossjoin({[CITY].[LONDON]}, {([DATE.DATE].[20171101] : [DATE.DATE].[20171130])}) 
+0

tốt thử, nhưng điều này không làm việc một trong hai. Ý của bạn là nhân [RECORD_TYPE.VALUES]. [Tất cả VALUEs] .children} lần [CITY]. [LONDON] thành viên? –

+0

Phải, tôi không chắc vì phương ngữ của Mondrian. –

Các vấn đề liên quan