2016-03-07 104 views
1

我有一個查詢;MDX填充間隙

SELECT 
[Measures].[PersonelMasrafTutarSicileGore] ON COLUMNS, 
non empty 
[DimDimension2CostCenterView].[CostCenterFullName].[CostCenterFullName] * 
[DimSicilBilgileri].[NAME].[NAME] * 
[DimSicilBilgileri].[SURNAME].[SURNAME] * 
[DimSicilBilgileri].[RSICILNO].[RSICILNO]* 
[DimLedgerMasrafHierarchy].[GVHFMMASRAFCINSI].GVHFMMASRAFCINSI].ALLMEMBERS * 
[DimLedgerMasrafHierarchy].[ACCOUNTNUM].[ACCOUNTNUM].ALLMEMBERS * 
[DimDateView].[MonthOfYear].[MonthOfYear]* 
[DimDateView].[MonthName].[MonthName] 
ON ROWS 
FROM (SELECT (STRTOSET("{[DimDateView].[Year].&[2016]}", CONSTRAINED)) ON COLUMNS 
FROM (SELECT (STRTOSET("{[BridgeSatisMuhasebeMM].[DimDimension2CostCenterViewKey].&[S_IHRACAT]}", CONSTRAINED)) ON COLUMNS 
FROM (SELECT (STRTOSET("{[DimDateView].[MonthOfYear].&[1],[DimDateView].[MonthOfYear].&[2]}", CONSTRAINED)) ON COLUMNS 
FROM [Model]))) 

而結果是;

enter image description here

這很好。我想要實現的是將有缺陷的月份值添加爲0.例如,選擇MonthOfYear值爲1和2.因此,對於第一行和accountnum 760.454.02,我想獲得MonthOfYear 2的行並且值爲0.如此對於accountnum 760.402.01的第二行,MonthOfYear 1的值應該爲0。如果可能的話,如果沒有[DimLedgerMasrafHierarchy]的值,我希望爲給定的MonthOfYear值獲得0值,例如;

enter image description here

我怎樣才能做到這一點?

回答

0

也許只是玩弄使用NonEmptyNON EMPTY

SELECT 
[Measures].[PersonelMasrafTutarSicileGore] ON COLUMNS, 

NonEmpty(
    [DimDimension2CostCenterView].[CostCenterFullName].[CostCenterFullName] 
*[DimSicilBilgileri].[NAME].[NAME] 
*[DimSicilBilgileri].[SURNAME].[SURNAME] 
*[DimSicilBilgileri].[RSICILNO].[RSICILNO] 
*[DimLedgerMasrafHierarchy].[GVHFMMASRAFCINSI].GVHFMMASRAFCINSI].ALLMEMBERS 
,[Measures].[PersonelMasrafTutarSicileGore] 
) 
*[DimLedgerMasrafHierarchy].[ACCOUNTNUM].[ACCOUNTNUM].ALLMEMBERS 
*[DimDateView].[MonthOfYear].[MonthOfYear] 
*[DimDateView].[MonthName].[MonthName] 

ON ROWS 
FROM (SELECT (STRTOSET("{[DimDateView].[Year].&[2016]}", CONSTRAINED)) ON COLUMNS 
FROM (SELECT (STRTOSET("{[BridgeSatisMuhasebeMM].[DimDimension2CostCenterViewKey].&[S_IHRACAT]}", CONSTRAINED)) ON COLUMNS 
FROM (SELECT (STRTOSET("{[DimDateView].[MonthOfYear].&[1],[DimDateView].[MonthOfYear].&[2]}", CONSTRAINED)) ON COLUMNS 
FROM [Model]))); 

我不完全理解您的評論 - 嘗試剛剛從[DimLedgerMasrafHierarchy]尺寸移動所有層次了NonEmpty功能:

SELECT 
[Measures].[PersonelMasrafTutarSicileGore] ON COLUMNS, 

NonEmpty(
    [DimDimension2CostCenterView].[CostCenterFullName].[CostCenterFullName] 
*[DimSicilBilgileri].[NAME].[NAME] 
*[DimSicilBilgileri].[SURNAME].[SURNAME] 
*[DimSicilBilgileri].[RSICILNO].[RSICILNO] 
,[Measures].[PersonelMasrafTutarSicileGore] 
) 
*[DimLedgerMasrafHierarchy].[GVHFMMASRAFCINSI].GVHFMMASRAFCINSI].ALLMEMBERS 
*[DimLedgerMasrafHierarchy].[ACCOUNTNUM].[ACCOUNTNUM].ALLMEMBERS 
*[DimDateView].[MonthOfYear].[MonthOfYear] 
*[DimDateView].[MonthName].[MonthName] 

ON ROWS 
FROM (SELECT (STRTOSET("{[DimDateView].[Year].&[2016]}", CONSTRAINED)) ON COLUMNS 
FROM (SELECT (STRTOSET("{[BridgeSatisMuhasebeMM].[DimDimension2CostCenterViewKey].&[S_IHRACAT]}", CONSTRAINED)) ON COLUMNS 
FROM (SELECT (STRTOSET("{[DimDateView].[MonthOfYear].&[1],[DimDateView].[MonthOfYear].&[2]}", CONSTRAINED)) ON COLUMNS 
FROM [Model]))); 
+0

再次感謝您,您再次節省了我的時間。您的解決方案就像我的第一個要求的魅力一樣。我的第二個要求是什麼?「如果[DimLedgerMasrafHierarchy]沒有值,我希望得到兩個給定MonthOfYear的0或空值,這是顯示最後一個截圖? – bsaglamtimur