使用mdx并排合并两个结果集

使用mdx并排合并两个结果集,mdx,Mdx,嗨,我是mdx的新手, 我想使用mdx查询并排合并两个select语句结果集,请任何人帮助我解决此查询 第一个问题: 这里[去年]是一组经过计算的数据 [去年]==== {STRTOMEMBER("[Date].[Month].&["+ cstr(year(now())-2) +"-11-01T00:00:00]"): (STRTOMEMBER("[Date].[Month].&["+ cstr(year(now())-1) +"-10-01T00:00:00]"

嗨,我是mdx的新手, 我想使用mdx查询并排合并两个select语句结果集,请任何人帮助我解决此查询 第一个问题:

这里[去年]是一组经过计算的数据

[去年]====

{STRTOMEMBER("[Date].[Month].&["+ cstr(year(now())-2) +"-11-01T00:00:00]"):
        (STRTOMEMBER("[Date].[Month].&["+ cstr(year(now())-1) +"-10-01T00:00:00]"))}
第二个问题:

**此处==>[Measures].[YTD],[Measures].[Budget]为计算成员 我想要像这样的结果

coulmns==>ytd,预算,11月,12月,1月,2月,,,,,,,,,,,10月和行===>位置和所有位置的总平均值


请指导我获得类似mdx查询的解决方案**

您的联合概念不起作用,主要原因有两个:

一,。不能合并来自不同层次结构的成员。2.查询结构是不同的

要并排查看它们,唯一的方法是在两个不同的窗口中打开查询

相反,如果您只想查看度量值和成员的组合视图,请使用以下任一查询:

//Go for this if you want to see the Locations in output

WITH MEMBER [Measures].[Budget ] AS IIF(avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),
                                        avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),0.00),

MEMBER [Measures].[YTD] AS IIF(avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null))<>null,
                              avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null)),0.00),
FORMAT_STRING = "Standard",
BACK_COLOR = CASE WHEN [YTD] = 0  THEN /*White*/16777215 /*White*/  
WHEN [YTD] <= [Measures].[Budget ] THEN 65408
     WHEN [YTD]<= [Measures].[Budget ] +5 THEN 65535
     WHEN [YTD]> [Measures].[Budget ] +5 THEN 255
END,
VISIBLE = 1


SELECT
{  [Measures].[YTD], [Measures].[Budget ], [Measures].[Labour %] }
ON COLUMNS,
{ [Last Year] }
*
{ { [Location].[Location].&[7], 
[Location].[Location].&[12], 
[Location].[Location].&[11], 
[Location].[Location].&[19], 
[Location].[Location].&[17], 
[Location].[Location].&[16], 
[Location].[Location].&[9], 
[Location].[Location].&[18] },
{[Location].[Location].[All]} }
ON ROWS
FROM [Cube1]

WITH MEMBER [Measures].[Budget ] AS IIF(avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),
                                        avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),0.00),

MEMBER [Measures].[YTD] AS IIF(avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null))<>null,
                              avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null)),0.00),
FORMAT_STRING = "Standard",
BACK_COLOR = CASE WHEN [YTD] = 0  THEN /*White*/16777215 /*White*/  
WHEN [YTD] <= [Measures].[Budget ] THEN 65408
     WHEN [YTD]<= [Measures].[Budget ] +5 THEN 65535
     WHEN [YTD]> [Measures].[Budget ] +5 THEN 255
END,
VISIBLE = 1
SELECT
{  [Measures].[YTD], [Measures].[Budget ] }
ON COLUMNS,

{ { [Location].[Location].&[7], [Location].[Location].&[12], [Location].[Location].&[11], [Location].[Location].&[19], [Location].[Location].&[17], [Location].[Location].&[16], [Location].[Location].&[9], [Location].[Location].&[18] },{[Location].[Location].[All]} }
ON ROWS

FROM [Cube1]
//Go for this if you want to see the Locations in output

WITH MEMBER [Measures].[Budget ] AS IIF(avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),
                                        avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),0.00),

MEMBER [Measures].[YTD] AS IIF(avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null))<>null,
                              avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null)),0.00),
FORMAT_STRING = "Standard",
BACK_COLOR = CASE WHEN [YTD] = 0  THEN /*White*/16777215 /*White*/  
WHEN [YTD] <= [Measures].[Budget ] THEN 65408
     WHEN [YTD]<= [Measures].[Budget ] +5 THEN 65535
     WHEN [YTD]> [Measures].[Budget ] +5 THEN 255
END,
VISIBLE = 1


SELECT
{  [Measures].[YTD], [Measures].[Budget ], [Measures].[Labour %] }
ON COLUMNS,
{ [Last Year] }
*
{ { [Location].[Location].&[7], 
[Location].[Location].&[12], 
[Location].[Location].&[11], 
[Location].[Location].&[19], 
[Location].[Location].&[17], 
[Location].[Location].&[16], 
[Location].[Location].&[9], 
[Location].[Location].&[18] },
{[Location].[Location].[All]} }
ON ROWS
FROM [Cube1]
//A cleaner one. Go for this if you don't want to see the Locations in output

WITH MEMBER [Measures].[Budget ] AS IIF(avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),
                                        avg([Last Year],IIF(([Measures].[Budget]>0),[Measures].[Budget],null)),0.00),

MEMBER [Measures].[YTD] AS IIF(avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null))<>null,
                              avg([Last Year], IIF(([Measures].[Labour %]>0),[Measures].[Labour %],null)),0.00),
FORMAT_STRING = "Standard",
BACK_COLOR = CASE WHEN [YTD] = 0  THEN /*White*/16777215 /*White*/  
WHEN [YTD] <= [Measures].[Budget ] THEN 65408
     WHEN [YTD]<= [Measures].[Budget ] +5 THEN 65535
     WHEN [YTD]> [Measures].[Budget ] +5 THEN 255
END,
VISIBLE = 1


SELECT
{  [Measures].[YTD], [Measures].[Budget ], [Measures].[Labour %] }
ON COLUMNS,
{ [Last Year] } ON ROWS
FROM [Cube1]
WHERE
{ { [Location].[Location].&[7], 
[Location].[Location].&[12], 
[Location].[Location].&[11], 
[Location].[Location].&[19], 
[Location].[Location].&[17], 
[Location].[Location].&[16], 
[Location].[Location].&[9], 
[Location].[Location].&[18] },
{[Location].[Location].[All]} }