Cognos BI - 将多个查询的结果合并为一个 Table
Cognos BI - Join Results of Multiple Queries into Single Table
这里有 Cognos BI 问题 - 我有两个数据 tables – 一个包含客户的姓氏和 SS #,另一个 table 有关于这些客户的“扩展信息”。元素 ID 是存储的数据元素,Ext Cis Value 具有数据值,SS Number 将其与客户联系起来。
我想构建一个列表,其中列出所有客户,以及 ExtendedInfo table 中三个数据元素中每一个的对应值。在这种情况下,它是 #13(电子邮件地址)、#15(潜在客户类型)和 #16(潜在客户来源)
这是我今天的数据:
前景数据table:
| Last Name | SS # |
|-----------------------|-----------|
| ABC Construction, LLC | S10000104 |
| XYZ Construction, LLC | S10000106 |
扩展信息table:
| Element Id | Ext Cis Value | SS Number |
|------------|---------------|-----------|
| 13 | HAS@EMAIL.COM | S10000104 |
| 13 | NO@EMAIL.COM | S10000106 |
| 15 | HOT PROSPECT | S10000104 |
| 15 | WARM PROSPECT | S10000106 |
| 16 | External | S10000106 |
| 16 | Internal | S10000104 |
我已经能够将这两个 table 连接在一起以创建这样的结果,但只能通过将过滤器应用于 ExtendedInfo 到 return 单个字段。示例如图:
| SS # | Last Name | Email Address |
|-----------|-----------------------|---------------|
| S10000104 | ABC Construction, LLC | HAS@EMAIL.COM |
| S10000106 | XYZ Construction, LLC | NO@EMAIL.COM |
我正在尝试设置一个包含五列的查询:SS 编号、姓氏、电子邮件地址(元素 ID 上的#13)、潜在客户类型(#15)和潜在客户来源(#16)。我设想它看起来像这样:
| SS # | Last Name | Email Address | Prospect Type | Prospect Source |
|-----------|-----------------------|---------------|---------------|-----------------|
| S10000104 | ABC Construction, LLC | HAS@EMAIL.COM | HOT PROSPECT | Internal |
| S10000106 | XYZ Construction, LLC | NO@EMAIL.COM | WARM PROSPECT | External |
到目前为止,我最接近的是在 ExtendedInfo table 上添加一个新查询,该查询对元素 ID 应用了过滤器,然后使用 JOIN 连接该查询的结果和前景数据 table。但是,我不知道如何(或者是否可行)在 ExtendedInfo(电子邮件、潜在客户类型、潜在客户来源)上创建 3 个单独的查询并将它们全部加入 ProspectData。
这似乎是一项简单的任务,但我不确定如何去做。有什么建议么?预先感谢您的帮助。
您不必加入表格 3 次。事实上,您只需加入一次。您可以在 model/report 层构建自定义列。
- 使用标准内部联接在 SS 编号上联接 ProspectData 和 ExtendedInfo
结果将如下所示:
| Element Id | Ext Cis Value | SS Number | SS Number | Last Name |
|------------|---------------|-----------|-----------|-----------------------|
| 13 | HAS@EMAIL.COM | S10000104 | S10000104 | ABC Construction, LLC |
| 13 | NO@EMAIL.COM | S10000106 | S10000106 | XYZ Construction, LLC |
| 15 | HOT PROSPECT | S10000104 | S10000104 | ABC Construction, LLC |
| 15 | WARM PROSPECT | S10000106 | S10000106 | XYZ Construction, LLC |
| 16 | External | S10000106 | S10000106 | XYZ Construction, LLC |
| 16 | Internal | S10000104 | S10000104 | ABC Construction, LLC |
- 现在,在模型层(如果在 Framework Manager 中这样做)或在结果查询中(如果在报告中这样做)添加三个新数据项,电子邮件地址、潜在客户类型、潜在客户来源,如下所示表达式:
电子邮件地址
CASE
WHEN position('@',[Ext Cis Value]) > 0 THEN [Ext Cis Value]
ELSE null
END
潜在客户类型
CASE
WHEN position('PROSPECT',[Ext Cis Value]) > 0 THEN [Ext Cis Value]
ELSE null
END
潜在客户来源
CASE
WHEN position('ternal',[Ext Cis Value]) > 0 THEN [Ext Cis Value]
ELSE null
END
将三个新数据项的聚合函数属性设置为 'Maximum'。这应该会导致您的结果汇总到一行,三个新数据项中的每一个都有值。
这里有 Cognos BI 问题 - 我有两个数据 tables – 一个包含客户的姓氏和 SS #,另一个 table 有关于这些客户的“扩展信息”。元素 ID 是存储的数据元素,Ext Cis Value 具有数据值,SS Number 将其与客户联系起来。
我想构建一个列表,其中列出所有客户,以及 ExtendedInfo table 中三个数据元素中每一个的对应值。在这种情况下,它是 #13(电子邮件地址)、#15(潜在客户类型)和 #16(潜在客户来源)
这是我今天的数据:
前景数据table:
| Last Name | SS # |
|-----------------------|-----------|
| ABC Construction, LLC | S10000104 |
| XYZ Construction, LLC | S10000106 |
扩展信息table:
| Element Id | Ext Cis Value | SS Number |
|------------|---------------|-----------|
| 13 | HAS@EMAIL.COM | S10000104 |
| 13 | NO@EMAIL.COM | S10000106 |
| 15 | HOT PROSPECT | S10000104 |
| 15 | WARM PROSPECT | S10000106 |
| 16 | External | S10000106 |
| 16 | Internal | S10000104 |
我已经能够将这两个 table 连接在一起以创建这样的结果,但只能通过将过滤器应用于 ExtendedInfo 到 return 单个字段。示例如图:
| SS # | Last Name | Email Address |
|-----------|-----------------------|---------------|
| S10000104 | ABC Construction, LLC | HAS@EMAIL.COM |
| S10000106 | XYZ Construction, LLC | NO@EMAIL.COM |
我正在尝试设置一个包含五列的查询:SS 编号、姓氏、电子邮件地址(元素 ID 上的#13)、潜在客户类型(#15)和潜在客户来源(#16)。我设想它看起来像这样:
| SS # | Last Name | Email Address | Prospect Type | Prospect Source |
|-----------|-----------------------|---------------|---------------|-----------------|
| S10000104 | ABC Construction, LLC | HAS@EMAIL.COM | HOT PROSPECT | Internal |
| S10000106 | XYZ Construction, LLC | NO@EMAIL.COM | WARM PROSPECT | External |
到目前为止,我最接近的是在 ExtendedInfo table 上添加一个新查询,该查询对元素 ID 应用了过滤器,然后使用 JOIN 连接该查询的结果和前景数据 table。但是,我不知道如何(或者是否可行)在 ExtendedInfo(电子邮件、潜在客户类型、潜在客户来源)上创建 3 个单独的查询并将它们全部加入 ProspectData。 这似乎是一项简单的任务,但我不确定如何去做。有什么建议么?预先感谢您的帮助。
您不必加入表格 3 次。事实上,您只需加入一次。您可以在 model/report 层构建自定义列。
- 使用标准内部联接在 SS 编号上联接 ProspectData 和 ExtendedInfo
结果将如下所示:
| Element Id | Ext Cis Value | SS Number | SS Number | Last Name |
|------------|---------------|-----------|-----------|-----------------------|
| 13 | HAS@EMAIL.COM | S10000104 | S10000104 | ABC Construction, LLC |
| 13 | NO@EMAIL.COM | S10000106 | S10000106 | XYZ Construction, LLC |
| 15 | HOT PROSPECT | S10000104 | S10000104 | ABC Construction, LLC |
| 15 | WARM PROSPECT | S10000106 | S10000106 | XYZ Construction, LLC |
| 16 | External | S10000106 | S10000106 | XYZ Construction, LLC |
| 16 | Internal | S10000104 | S10000104 | ABC Construction, LLC |
- 现在,在模型层(如果在 Framework Manager 中这样做)或在结果查询中(如果在报告中这样做)添加三个新数据项,电子邮件地址、潜在客户类型、潜在客户来源,如下所示表达式:
电子邮件地址
CASE
WHEN position('@',[Ext Cis Value]) > 0 THEN [Ext Cis Value]
ELSE null
END
潜在客户类型
CASE
WHEN position('PROSPECT',[Ext Cis Value]) > 0 THEN [Ext Cis Value]
ELSE null
END
潜在客户来源
CASE
WHEN position('ternal',[Ext Cis Value]) > 0 THEN [Ext Cis Value]
ELSE null
END
将三个新数据项的聚合函数属性设置为 'Maximum'。这应该会导致您的结果汇总到一行,三个新数据项中的每一个都有值。