主菜单 上一节  |  下一节

定义高级计算

Microsoft® SQL Server™ 2000 Analysis Services 的新版本可在任何粒度级别上提供对计算定义的完全支持。现在可以为一个维度的任何成员,以及任意单元的组合(小到单个单元)定义计算。

注意:在 Microsoft® SQL Server 2000 企业版的 Analysis Services 中可用计算单元。如果使用的是标准版,请继续阅读下一节

为什么?

在某些类型的应用程序中,如预算和其它财务应用程序,需要为某个维度的任意成员在该维度的任意级别上定义计算,和/或为自定义选定单元定义计算。您必须根据自己的业务需要,对在何处定义计算(成员或单元)作出选择。

对于某些计算,业务需要可能要求定义一个维度的某些成员,因而需要由计算公式进行取值。然后将此公式应用到在其坐标中包含此成员的每个单元中。某些高级计算要求只有多维数据集的特定单元或多维数据集的特定子多维数据集才能用自定义公式取值。

 

方案:

在上一节中,Expense Budget 多维数据集用实际费用进行处理和填充。因此,Expense Budget 多维数据集不包含任何 Actual Income(实际收入)数据或 Budget(预算)数据。

首先,将定义有关方案维度的 Budget 成员的计算,根据 Actual 数据计算 Budget。必须将 Budget 公式设置为 Actual 的 110%。可以定义此成员计算,因为在上一节中,已在创建 Scenario 维度时启用了“用 MDX 定义的自定义公式”选项。

其次,为了对自己商店的收益率有一个完整的认识,您需要从 Sales 多维数据集检索销售信息。为此,需要为 Account 维度 Gross Sales 成员和 Scenario 维度 Actual 成员的交集处的单元定义计算。此计算将使用新的 MDX 函数 (LookupCube),该函数可从另一个多维数据集中动态检索数据。只有 Microsoft® SQL Server 2000 企业版才具有此功能。

 

如何在成员级别设置计算

  1. 在 Analysis Manager 树窗格中,在“教程”数据库下,展开“多维数据集”文件夹,右击“Expense Budget”多维数据集,然后单击“浏览数据”命令。
  2. 即会出现多维数据集浏览器。最大化该浏览器,以便更好地查看该多维数据集中所包含的数据。
  3. 使用拖放技术,用“Scenario”维度替换“Measures”维度。可看到“Current Year's Budget”成员不包含任何数据。

    112.gif

  4. 关闭多维数据集浏览器。
  5. 展开“共享维度”文件夹,右击“Scenario”维度,然后单击“编辑”命令。即会出现维度编辑器。

    113.gif

  6. 在“数据”选项卡上单击,显示维度树。
  7. 展开该维度,并选择“Current Year's Budget”成员。将启用“自定义成员公式”窗格。

    114.gif

  8. 在自定义成员公式窗格中,单击按钮(“...”)打开“MDX 生成器”对话框。
  9. 在“MDX 生成器”对话框中,展开“Scenario”维度树的“级别 02”,然后将“Current Year's Actuals”拖到 MDX 表达式字段。MDX 表达式字段用成员的成员键定义得以更新。
  10. 然后,在表达式的末端,输入“*1.1”。单击“确定”按钮。

    115.gif

  11. 保存更改。Budget 成员的布局发生更改,并显示一个公式已与其相关联。

    116.gif

  12. 关闭维度编辑器。
  13. 展开“多维数据集”文件夹,右击“Expense Budget”,然后单击“浏览数据”命令。即会出现多维数据集浏览器。
  14. 拖动列中的“Scenario”维度,替换“Measures”维度。如您所见,现在“Current Year's Budget”成员包含数据。此数据是按实际的 110% 计算的。

    117.gif

  15. 关闭多维数据集浏览器。

 

如何为子多维数据集或选定单元设置计算

    注意: Microsoft® SQL Server 2000 企业版的 Analysis Services 具有计算单元。如果使用的是标准版,请继续阅读下一节

  1. 在 Analysis Manager 树窗格中,在“教程”数据库下,展开“多维数据集”文件夹,右击“Expense Budget”多维数据集,然后单击“编辑”命令。在多维数据集编辑器中,在“数据”面板上单击,以显示数据。然后拖动列中的“Scenario”维度,以替换“Measures”维度。展开“Scenario”维度,在列中显示其四个成员。

    122.gif

  2. 右击多维数据集编辑器树中的计算单元节点,然后单击“新建计算单元”命令。即会出现计算单元向导的“欢迎”步骤。单击“下一步”按钮。
  3. 在 “定义计算子多维数据集”步骤,选择“Account”维度。接下来,在“成员集”框中,选择“一个成员”。在所显示的维度树中,展开该维度,然后单击“Gross Sales”。

    118.gif

  4. 选择“Scenario”维度。然后在“成员集”框中,选择“一个成员”。在所出现的维度树中,展开该维度,然后单击“Current Year's Actuals”。

    119.gif

  5. 单击“下一步”按钮。
  6. 在“定义计算条件(可选)”步骤,单击“下一步”按钮。
  7. 在“定义计算公式”步骤的“MDX 表达式”框中,输入:“LookUpCube("[Sales]","(Measures.[Store Sales],"+time.currentmember.Uniquename+",Store.["+Store.currentmember.name+"])")”。

    120.gif

  8. 单击“下一步”按钮。
  9. 在最后一步,在“名称”框中输入“Gross Sales actual from the Sales”。这是用于 Analysis Manager 中对象的名称。单击“完成”按钮。
  10. 可以看到(Current Year's Actual、Gross Sales)单元的值已更改。现在显示的值来自 Sales 多维数据集中的 Stores Sales 度量值。“Current Year's Budget”单元根据以前定义的成员计算,也得以自动更新。

    121.gif

  11. 保存所做的更改,然后关闭多维数据集编辑器。

 

主菜单 上一节  |  下一节