使用 Analysis Services DMX 查询设计器 (Reporting Services)

使用 SQL ServerAnalysis Services 数据源创建数据集时,如果检测到有效多维数据集,则报表设计器将显示多维表达式 (MDX) 查询设计器。如果未检测到多维数据集,但有数据挖掘模型可用,则报表设计器将会显示数据挖掘扩展插件 (DMX) 查询设计器。若要在 MDX 设计器与 DMX 设计器之间切换,请单击工具栏上的**“命令类型 DMX”**(更改为 DMX 查询语言视图) 按钮。使用 DMX 查询设计器以交互方式生成使用图形元素的 DMX 查询。若要使用 DMX 查询设计器,指定的数据源必须已具有可提供数据的数据挖掘模型。查询结果被转换为要在报表中使用的平展行集。

注意注意

在设计报表前必须为模型定型。有关详细信息,请参阅数据挖掘项目(Analysis Services - 数据挖掘)

设计模式

DMX 查询设计器将在设计模式下打开。设计模式包含用于选择单个数据挖掘模型和输入表的图形设计图面,同时还包含用于指定预测查询的网格。DMX 查询设计器还有其他两种模式:查询模式和结果模式。在查询模式中,查询窗格取代了设计模式中的网格,您可以在查询窗格中键入 DMX 查询。在结果模式中,由查询返回的结果集显示在数据网格中。

若要更改 DMX 查询设计器的模式,请在查询设计图面上单击鼠标右键,并选择**“设计”“查询”“结果”**。有关详细信息,请参阅 Analysis Services DMX 查询设计器用户界面如何从数据挖掘模型检索数据 (DMX)

设计预测查询

设计模式的“查询设计”窗格中包含两个窗口:“挖掘模型”“选择输入表”。使用**“挖掘模型”窗口可选择要在查询中使用的挖掘模型。使用“选择输入表”窗口可选择预测所基于的表。如果希望使用单独查询而不是输入表,请在“查询设计”窗格中单击鼠标右键,并选择“单独查询”“单独查询输入”窗口将取代“选择输入表”**窗口。

在设计模式中,可以将**“挖掘模型”窗口和“选择输入表”窗口中的字段拖至“网格”窗格中的“字段”**列。您还可以填充其余列来指定别名、在结果中显示字段、将字段组合在一起以及指定运算符根据给定条件或参数限制字段值。如果使用的是查询模式,请通过将字段拖至“查询”窗格来生成 DMX 查询。

有关使用 DMX 查询设计器生成 DMX 预测查询的详细信息,请参阅使用预测查询生成器创建 DMX 预测查询

下面的示例显示了如何使用 DMX 查询设计器创建报表数据集。

示例:检索数据挖掘模型中的数据

Reporting Services 示例包含一个项目,该项目基于 SQL Server 示例数据库 AdventureWorksDW 部署两个挖掘模型。有关详细信息,请参阅 Reporting Services 示例

  1. 安装并发布 AdventureWorks 示例报表,然后部署 Analysis Services 多维数据集。有关详细信息,请参阅 Reporting Services 示例

  2. 打开 AdventureWorks 示例报表项目,然后向该项目中添加空报表定义 (.rdl) 文件。

  3. 创建使用 AdventureWorksAS 共享数据源的新数据集。在**“数据集属性”对话框中,单击“查询设计器”。MDX Analysis Services 查询设计器将以“设计”**模式打开。

  4. 单击工具栏上的**“命令类型 DMX”**(更改为 DMX 查询语言视图) 按钮。

  5. 单击**“是”**切换到 DMX 查询设计器。

  6. 单击**“选择模型”,展开“目标邮件”**,然后选择 TM Decision Tree。单击“确定”。

  7. 单击**“选择事例表”**,滚动到 vTargetMail (dbo) 并选定它。单击“确定”。

  8. 在“网格”窗格中,单击**“源”,然后选择“TM Decision Tree 挖掘模型”“字段”**列中将会显示 Bike Buyer

  9. 在下一行中,单击**“源”,然后选择“vTargetMail 表”“字段”**列中将显示 CustomerKey

  10. 右键单击**“查询设计”窗格,并选择“结果”以查看结果集。结果视图中将显示包含 18484 行的行集。若要切换回设计模式,请右键单击“结果”窗格并选择“设计”**。

使用参数

您可以将报表参数传递到 DMX 查询参数。若要如此操作,必须向 DMX 查询添加一个参数,在**“查询参数”对话框中定义相应的查询参数,再修改相关联的报表参数。若要定义查询参数,请单击工具栏上的“查询参数”**(“查询参数”对话框图标) 按钮。若要查看有关如何在 DMX 查询中定义参数的说明,请参阅如何在 Analysis Services 的 MDX 查询设计器中定义参数

有关如何管理报表参数与查询参数之间的关系的详细信息,请参阅如何将查询参数与报表参数相关联。有关参数的详细信息,请参阅向报表中添加参数

带参数的查询示例

以下查询检索指示可能购买自行车的客户及其购买概率的报表数据。

SELECT
  t.FirstName, t.LastName,
  (Predict ([Bike Buyer])) as [PredictedValue],
  (PredictProbability([Bike Buyer])) as [Probability]
From
  [TM Decision Tree]
PREDICTION JOIN
  OPENQUERY([Adventure Works DW],
    'SELECT
      [FirstName],
      [LastName],
      [CustomerKey],
      [MaritalStatus],
      [Gender],
      [YearlyIncome],
      [TotalChildren],
      [NumberChildrenAtHome],
      [HouseOwnerFlag],
      [NumberCarsOwned],
      [CommuteDistance]
    FROM
      [dbo].[DimCustomer]
    ') AS t
ON
  [TM Decision Tree].[Marital Status] = t.[MaritalStatus] AND
  [TM Decision Tree].[Gender] = t.[Gender] AND
  [TM Decision Tree].[Yearly Income] = t.[YearlyIncome] AND
  [TM Decision Tree].[Total Children] = t.[TotalChildren] AND
  [TM Decision Tree].[Number Children At Home] = t.[NumberChildrenAtHome] 
AND
  [TM Decision Tree].[House Owner Flag] = t.[HouseOwnerFlag] AND
  [TM Decision Tree].[Number Cars Owned] = t.[NumberCarsOwned] AND
  [TM Decision Tree].[Commute Distance] = t.[CommuteDistance]
WHERE
 (Predict ([Bike Buyer]))=@Buyer AND
 (PredictProbability([Bike Buyer]))>@Probability
注意注意

此示例使用 DimCustomer 表作为输入表。这仅用于演示。在 AdventureWorks 数据库中,DimCustomer 表用于定型此示例中使用的模型。通常情况下,将使用以前未用于定型的输入表。

本示例中,在创建查询之后,您必须使用**“查询参数”对话框定义查询参数。若要执行此操作,请单击查询设计器工具栏上的“查询参数”**(“查询参数”对话框图标) 按钮。

按如下方式添加参数。每个参数还必须有一个默认值。

参数

默认值

Buyer

1

Probability

.75

注意注意

“查询参数”对话框中指定的参数必须与查询中的参数相同,不带 @ 符号。

切换到“设计”视图创建报表时,将会基于查询参数创建新的报表参数。报表运行时,会按照报表参数的设置向用户显示。您可以更新报表参数以提供用户从中选择值的列表,指定默认值,还可以更改其他报表参数属性。

有关使用报表参数的详细信息,请参阅: