Sql MDX查询在使用openrowset执行时返回不同的值

Sql MDX查询在使用openrowset执行时返回不同的值,sql,mdx,olap-cube,Sql,Mdx,Olap Cube,当我在存储多维数据集本身的分析服务器上执行相同的MDX查询时,通过来自sql server的openrowset函数调用,我得到了明显不同的输出 --MDX query-- 有没有办法在SQL端获得与直接查询分析服务器时相同的输出 我正在做类似的事情,建议使用openquery和/或openrowset来解决这个问题 其他问题在使用和分层MDX查询时注意到了这个问题。只需选择相同的输出即可 @sql = '--MDX query--' exec(N'select "[Blah].[

当我在存储多维数据集本身的分析服务器上执行相同的MDX查询时,通过来自sql server的openrowset函数调用,我得到了明显不同的输出

--MDX query--

有没有办法在SQL端获得与直接查询分析服务器时相同的输出

我正在做类似的事情,建议使用openquery和/或openrowset来解决这个问题


其他问题在使用和分层MDX查询时注意到了这个问题。

只需选择相同的输出即可

@sql =  '--MDX query--'   
exec(N'select "[Blah].[Blah 3].[Blah 3].[Table Code Level 2]" from openrowset
             (''MSOLAP''
             , ''Data Source= ANALYTIC SERVER; Catalog= CATALOG;''
             ,''' + @sql + ''');'

只需选择相同的输出

@sql =  '--MDX query--'   
exec(N'select "[Blah].[Blah 3].[Blah 3].[Table Code Level 2]" from openrowset
             (''MSOLAP''
             , ''Data Source= ANALYTIC SERVER; Catalog= CATALOG;''
             ,''' + @sql + ''');'

我认为部分问题来自于在MDX中使用分层调用,这导致使用openrowset时返回的值不同

我发现的解决方案是非常简单地使用,正如一位专家所建议的那样。与为openquery设置链接服务器相比,该解决方案在本地服务器上工作更快、更容易。它返回的表与分析服务器返回的表完全相同

DECLARE @Server NVARCHAR(30) = 'ANALYTIC SERVER'
DECLARE @Database NVARCHAR(50) = 'CATALOG';

DECLARE @MDX NVARCHAR(MAX) = '--MDX query--'

EXEC ExecuteOLAP @Server, @Database, @MDX;

我认为部分问题来自于在MDX中使用分层调用,这导致使用openrowset时返回的值不同

我发现的解决方案是非常简单地使用,正如一位专家所建议的那样。与为openquery设置链接服务器相比,该解决方案在本地服务器上工作更快、更容易。它返回的表与分析服务器返回的表完全相同

DECLARE @Server NVARCHAR(30) = 'ANALYTIC SERVER'
DECLARE @Database NVARCHAR(50) = 'CATALOG';

DECLARE @MDX NVARCHAR(MAX) = '--MDX query--'

EXEC ExecuteOLAP @Server, @Database, @MDX;

我并没有透露太多关于额外栏目的信息,更多的是,这些栏目的内容完全不同,或者在许多情况下无法使用。我试图理解如何让openrowset返回完全相同的列和值集。即使在这种情况下,也会返回NST.02而不是正确的NST.02。06@HenryE你能把MDX添加到你的问题中吗?我设法安装了一个更准确地返回值的扩展,谢天谢地,它也不需要使用链接服务器,我没有透露太多关于额外列的信息,更多的是,它们的内容完全不同或在许多情况下无法使用。我试图理解如何让openrowset返回完全相同的列和值集。即使在这种情况下,也会返回NST.02而不是正确的NST.02。06@HenryE您能在您的问题中添加MDX吗?我安装了一个扩展,它可以更准确地返回值,谢天谢地,它也不需要使用链接服务器。这是一个非常晚的clr解决方案:我们使用这个存储过程,从那以后就没有使用过OPENQUERY安装它。这是一个非常晚的clr解决方案:我们使用这个存储过程,自从安装它之后就没有使用过OPENQUERY。