2017-07-03 82 views
0

我們有一個MDX查詢,看起來像這樣:獲取GETDATE(),DATEDIFF在SSAS(MDX)查詢

WITH Member [Measures].[Z] AS (DATEADD("H",-1,[X].[Y].Member_Caption)) 
SELECT { [X].[Y].Children } ON Rows, 
     { [Measures].[Z] } ON Columns 
FROM ABC 

它基本上返回日期時間(LastRefresh)。

我的任務是創建一個MDX查詢返回以下列:

LastRefresh, Getdate(), datediff(Mins, LastRefresh, Getdate()) 

它相當於SQL查詢:

select LastRefresh, getdate() as CurrentDate, datediff(Mins, LastRefresh, getdate()) as DateDifference from XYZ 

我如何可以做同樣的MDX立方體?

注:

,我們不能創造任何新的措施,我們只是使用了立方獲取數據,並沒有任何形式的訪問,以創建措施等

+0

你的問題是什麼?我無法在任何地方看到問號。 – whytheq

+0

我們需要模仿mdx中的SQL查詢 –

+0

LastRefresh不能通過mdx針對多維數據集(除非您在某處添加了最後一次刷新成員?!) – whytheq

回答

0

GETDATE()是一個SQL函數,但是你正在編寫MDX,所以它是不允許的。

如果您使用的是Microsoft SSAS,則MDX允許使用VBA,並且您可以使用Now()返回當前的日期和時間。

使用VBA格式DateDiff(不是SQL版本!),您可以按照這種方式進行計算。您可能需要CDate()將成員名稱的字符串值轉換爲VBA使用的日期對象。如...

DateDiff("d", CDate([X].[Y].MemberName), Now())