如何在MDX中加入两个完全不同的多维数据集?

时间:2019-01-16 00:31:52

标签: join ssrs-2008 mdx cube mdx-query

我想在mdx中加入两个完全不同的多维数据集(我正在使用MS SSRS 2008)。我真的是mdx的新手,我也不知道该怎么做。如果可能,我想加入SKU。有人可以告诉我该怎么做吗?

mdx查询1

 SELECT NON EMPTY { [Measures].[Sales], [Measures].[Quantity] } ON COLUMNS, 
        NON EMPTY { ([Date YMD].[Day].ALLMEMBERS * 
                     [Regions And Stores].[Store Name].[Store Name].ALLMEMBERS * 
                     [Products].[Products].ALLMEMBERS * 
                     [SKU].[SKU].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
 FROM [Super] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

mdx查询2

SELECT NON EMPTY { [Measures].[Quantity] } ON COLUMNS, 
       NON EMPTY { ([Store Name].[Store Name].ALLMEMBERS * 
                     [Products].[Products].ALLMEMBERS * 
                     [SKU].[SKU].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
FROM [Inventory Activity] CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS

任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:5)

在SSRS中,您需要在报告中加载两个数据集,然后将它们加入tablix中。例如:

Dataset1Dataset2加载到报告中,并在列ID中将Dataset1链接到Dataset2。然后在您的报告中添加一个Tablix。在Tablix中显示Dataset1。现在,将新列添加到tablix中,并添加以下表达式:

=Lookup(Fields!Dataset1ID.Value, Fields!Dataset2ID.Value, Fields!SalesAmount.Value, "Dataset2")

该表达式的工作方式如下:  -第一个参数是Dataset1

中的外键列
  • 第二个参数是Dataset2中对应的键列
  • 第三个参数是您要在Tablix中显示的列,该列来自Dataset2
  • Forth参数是要与之连接的数据集中的名称(Dataset2

以下是Lookup()函数的引用:https://docs.microsoft.com/de-de/sql/reporting-services/report-design/report-builder-functions-lookup-function?view=sql-server-2017

答案 1 :(得分:2)

欢迎使用MDX,我想您正在MDX中寻找等效的SQL Join。但是,MDX不支持SQL之类的联接。解决该问题的一种方法是通过ADOMD将数据检索到数据单元中,然后将它们联接到内存中。但是,我想知道这种情况,该情况要求您将两个多维数据集的结果连接起来。