Sql-Server

‘Measure’ > 0 語法在 mdx 查詢中不起作用

  • April 15, 2019

希望你做得很好我已經寫了一個 MDX 查詢,如下所示:

with member [Measures].[TOTAL] AS
SUM(Periodstodate([DimTime].[Year].[(All)] ,[DimTime].[Year].currentmember)
,[Measures].[IndentCount])

Select {[Measures].[IndentCount],[Measures].[TOTAL]}  
  having [Measures].[IndentCount] > 0 on 0 , 
  non empty [DimTime].[Year].[Year] on 1
from [Procurement]

問題是儘管使用having [Measures].[IndentCount] > 0我仍然看到我的度量的空值,如下所示:

在此處輸入圖像描述. 我想知道會是什麼問題???即使我使用過濾器功能我也有這個問題

提前致謝

您將HAVING子句放在試圖過濾掉任何具有空或零縮進計數的列的ON COLUMNS軸(或)中。相反,如果您希望它消除一些行,則ON 0需要將其移動到ON ROWS軸(或)。ON 1

我還建議您可以通過使用NonEmpty函式而不是HAVING. 由於您不能有零或負的 IndentCount,因此以下將執行您想要的操作並且性能會更好,因為它只會計算您最終將保留的行的 TOTAL 度量。

with member [Measures].[TOTAL] AS
SUM(Periodstodate([DimTime].[Year].[(All)] ,[DimTime].[Year].currentmember)
,[Measures].[IndentCount])

Select {[Measures].[IndentCount],[Measures].[TOTAL]}  
  on 0 , 
  NonEmpty([DimTime].[Year].[Year], [Measures].[IndentCount]) on 1
from [Procurement]

引用自:https://dba.stackexchange.com/questions/234170