我只是在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中创建存储过程?
答案 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;
简单得多。