使用T-SQL存储过程处理OLAP多维数据集

时间:2016-08-23 12:36:07

标签: tsql mdx olap-cube

我只是在MDX中查询到OLAP多维数据集,如下所示,我想将此查询与T-SQL存储过程一起使用:

SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS, 
NON EMPTY { ([Basic].[Payment Method].[Payment Method].ALLMEMBERS ) }  ON ROWS 
FROM [SummaryCube]

如何在使用此查询的T-SQL中创建存储过程?

2 个答案:

答案 0 :(得分:1)

T-SQL和MDX是完全不同的语言(虽然它们有肤浅的相似之处),所以我担心你不能只将一些MDX填充到存储过程中。一个快速的谷歌出现了this(利用链接服务器),看起来它应该适用于你想要的东西,尽管你可能想要重新考虑你想要实现的目标和原因,然后再走这条路线。 / p>

答案 1 :(得分:1)

正如您在上一个问题中提到的那样:Stored procedure in MDX

安装插件然后您可以执行以下操作:

EMUToPixels()

这种方法比使用linkedServers和DECLARE @Server NVARCHAR(30) = 'SummaryCubeServerName'; DECLARE @Database NVARCHAR(50) = 'SummaryCubeDatabaseName'; DECLARE @MDX NVARCHAR(MAX) = ' SELECT NON EMPTY { [Measures].[Revenue] } ON COLUMNS, NON EMPTY { ([Basic].[Payment Method].[Payment Method].ALLMEMBERS ) } ON ROWS FROM [SummaryCube]; ' CREATE TABLE #Results( PaymentMethod AS VARCHAR(250), Revenue AS FLOAT ); INSERT INTO #Results EXEC ExecuteOLAP @Server, @Database, @MDX; SELECT * FROM #Results; 简单得多。