簡體   English   中英

總結SSAS中的多個MDX查詢

[英]Summing up multiple MDX queries in SSAS

我需要對多個查詢的結果求和。

我面臨的挑戰是每個查詢都有定義的成員(以計算日期范圍)

我需要能夠在多個mdx查詢中合並/求和那些成員

WITH Member [M1] AS Sum(DateRange, Measure)

SELECT [M1]

FROM [Cube]

WHERE {[x].&[y]}



WITH Member [M1] AS Sum(Different DateRange, Measure)

SELECT [M1]

FROM [Cube]

WHERE {[z].&[q]}

每個查詢根據不同的條件選擇相同的成員。

我能想到的唯一方法是UNION,而不是SUM([M1]),但不知道在MDX中怎么可能

更新-回答icCube問題,這就是為什么我需要為每個查詢使用單獨的WHERE子句:

我需要為每個查詢單獨的WHERE部分,因為我需要匯總不同分片的結果。 我的切片由n個維度定義。 我根據用戶配置輸入動態地為每個切片發出mdx查詢(並動態構造我的WHERE子句以按用戶首選項進行過濾)。 允許用戶配置重疊的片(這些是我需要匯總在一起的片)。 那么我需要將這些切片行計數合並為一個報告。 我正在做的方式是將帶有MDX查詢的字符串傳遞給報表。 但是由於我想不出一種將多個查詢合並到一個可執行字符串中的方法,(我也不知道會有多少個查詢)這種方法不再可行(除非有某種方法可以將它們合並/求和。

我現在想到的唯一方法是,執行額外的批處理步驟,該步驟將遍歷所有查詢,將它們處理(使用Adomd.net)到暫存表中,然后我可以使用SQL sum將它們匯總到報表中( ..)。 此方法的最大缺點是需要維護附加系統,並且報告中的數據過時的可能性更大。

不知道這是你在找什么

WITH Member [M1] AS Sum(Different DateRange, ([z].&[q],Measure) ) + 
                    Sum(DateRange, ([x].&[y],Measure))

SELECT [M1]

FROM [Cube]

要么

WITH Member [M1] AS Sum(Different DateRange * {[z].&[q]}, Measure ) + 
                    Sum(DateRange * {[x].&[y]}, Measure)

SELECT [M1]

FROM [Cube]

我不知道如何在MDX中添加兩個選擇的結果...

我相信您需要Aggregate()而不是Sum。

您可以通過以下方式使用SubCube在MDX中實現UNION行為:

Select
{...} On Columns,
{...} On Rows
From (
     Select 
            {
              {Dimension1.Level.Members * Dimension2.&[1] * Dimension3.&[2]},
              {Dimension1.&[X] * Dimension2.Members * Dimension3.&[5]}  
            } On Columns
     From [Cube]
     )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM