我正在尝试查询我们的SSAS多维数据集并将值返回到SQL视图,以用作基于多维数据集的报表中的参数。
我需要根据日期层次结构为财务季节返回3个值。
这是下面的代码,它返回正确的数据。
WITH
MEMBER [CurrentHalf] AS [Date - Master].[Financial Calendar].CURRENTMEMBER.UNIQUENAME
MEMBER [NextHalf] AS [Date - Master].[Financial Calendar].LEAD(1).UNIQUENAME
MEMBER [PreviousHalf] AS [Date - Master].[Financial Calendar].LEAD(-1).UNIQUENAME
SELECT {[Date - Master].[Financial Calendar].[Season Half]} ON COLUMNS ,
{[CurrentHalf],NextHalf,PreviousHalf} ON ROWS
FROM [Sales and Stock]
WHERE (Filter([Date - Master].[DateKey].Members,[Date - Master].[DateKey].MemberValue = (format(now(),"dd/MM/yyyy"))))
然而,[日期 - 主要]的列名称。[财务日历]。[季节半]返回标题值(例如2014-秋/冬)。
见图:
通常情况下这没问题,因为我将它传递给SQL我需要一个列名来选择关闭。我需要的是将此列重命名为其他内容(例如HalfName)
我试过了
WITH
MEMBER [CurrentHalf] AS [Date - Master].[Financial Calendar].CURRENTMEMBER.UNIQUENAME
MEMBER [NextHalf] AS [Date - Master].[Financial Calendar].LEAD(1).UNIQUENAME
MEMBER [PreviousHalf] AS [Date - Master].[Financial Calendar].LEAD(-1).UNIQUENAME
MEMBER [HalfName] as [Date - Master].[Financial Calendar].[Season Half].CURRENTMEMBER.VALUE
SELECT {[HalfName]} ON COLUMNS ,
{[CurrentHalf],NextHalf,PreviousHalf} ON ROWS
FROM [Sales and Stock]
WHERE (Filter([Date - Master].[DateKey].Members,[Date - Master].[DateKey].MemberValue = (format(now(),"dd/MM/yyyy"))))
但那仍然无效。
答案 0 :(得分:3)
当您定义MEMBER
个表达式时,它会推断您是在[Measures]
维度上创建它们,因此[HalfName]
列的全名是[Measures].[HalfName]
。
另外,我没有看到SQL / T-SQL在哪里,除非你误认为你的MDX for SQL(它们看起来相似,因为它们共享一些语法,但是是非常不同的野兽)。