我有這樣的where子句中的SQL語言:SQL來MDX轉換
where (cond1=1 or cond2=1) and cond3=1
我怎樣才能得到這樣的結果在MDX與切片(條件到哪裏)?
{[cond1].&[1],[cond2].&[1]} /*and*/ {[cond3].&[1]}
感謝
我有這樣的where子句中的SQL語言:SQL來MDX轉換
where (cond1=1 or cond2=1) and cond3=1
我怎樣才能得到這樣的結果在MDX與切片(條件到哪裏)?
{[cond1].&[1],[cond2].&[1]} /*and*/ {[cond3].&[1]}
感謝
嘗試使用子多維數據集:
Select
-- YOUR SELECTED MEASURES AND DIMENSIONS
From
(
Select
{[cond1].&[1],[cond2].&[1]} on 0
,{[cond3].&[1]} on 1
-- ,{more slices} on x
From [CubeName]
)
希望這有助於!
您可以使用上述的子多維數據集表達式,但這不是唯一的選擇。如果使用子多維數據集,則會大大提高查詢性能(假設您不在其中執行交叉連接)。
您也可以使用一般的WHERE最後一個表達式關鍵字後,返回立方體:
select
{ .. } on 0,
{ .. } on 1
from (select { [Dim1].[X].allmembers } on 0)
where ([Dim2].[Y].&[Y1])
或者:
select
{ .. } on 0,
{ .. } on 1
from (select { [Dim1].[X].allmembers } on 0)
where {[DimTime].[Time].[Year].&[2001] : [DimTime].[Time].[Year].&[2015]}
這是在執行結束時應用,這意味着可能會降低性能。但是,如果您需要將外部過濾器應用於所有軸,則這是您需要的選項。
另一種方式來過濾成員的值是使用元組表達式:
with member LastDateSale as ((Tail(EXISTING [DimTime].[Time].[Dates].members,1), [Measures].[ActualSales]))
這將帶你DimTime軸,適用於外部濾波器,從它那裏得到的最後一個元素,併爲其計算[ActualSales],如果可能的話。