我有一个MDX查询,我想用它来将一些Cube数据上传到SQL数据库。为此,我希望所有行都有一个标题,默认情况下在MDX中没有这样做。
有人可以修改以下MDX查询以在结果表中添加最左边两列的标题吗?
查询:
SELECT
NON EMPTY
{
[Measures].[Internet Order Quantity],
[Measures].[Internet Sales Amount]
} ON COLUMNS,
NON EMPTY
{ (
[Customer].[Education].[Education].ALLMEMBERS *
[Customer].[Home Owner].[Home Owner].ALLMEMBERS
) } ON ROWS
FROM [Adventure Works]
结果表:
由于
答案 0 :(得分:1)
通过SQL Server linked server connected to SSAS读取查询对于将针对多维数据集的查询结果插入SQL Server的方案来说是一个合理的选择。通过链接服务器读取时,该确切查询将具有列标题。所以我不担心SSMS MDX查询窗口将查询结果呈现为Cellset而不是Rowset。
答案 1 :(得分:0)
https://olapextensions.codeplex.com/
然后,您可以使用存储过程执行以下操作:
CREATE TABLE #results(
Education VARCHAR(250),
Owner VARCHAR(250),
OrderQuantity FLOAT,
SalesAmount FLOAT
);
DECLARE @Server NVARCHAR(30) = 'localhost'
DECLARE @Database NVARCHAR(50) = 'AdventureWorksDW2012Multidimensional-EE';
DECLARE @MDX NVARCHAR(MAX) =
'
SELECT
NON EMPTY
{
[Measures].[Internet Order Quantity],
[Measures].[Internet Sales Amount]
} ON COLUMNS,
NON EMPTY
{ (
[Customer].[Education].[Education].ALLMEMBERS *
[Customer].[Home Owner].[Home Owner].ALLMEMBERS
) } ON ROWS
FROM [Adventure Works]
'
INSERT INTO #results
EXEC ExecuteOLAP @Server, @Database, @MDX;
SELECT *
FROM #results;