0

我没有在 Cognos-11 中工作的 except 加入。我在哪里或错过了什么?

对这个分支的初学者有一些了解会很好;-)

到目前为止,我尝试的是进行两个查询。第一个包含“客户”、“开始日期”和“目的”等数据项。第二个查询包含“客户”、“地址”和“社区”等数据项。我想要完成的是进入query3:query1 中的“客户”在query2 中不可用。对我来说,这听起来像是一个例外加入。

我去了查询工作区,创建了一个 query3 并在其上拖动了一个“除外加入”图标。然后我将query1拖到上部空间,将query2拖到下部。我习惯于与其他联接一起获得的是设置新链接、基数等的可能性。现在双击加入不会打开任何弹出窗口。except-join 的属性显示“设置操作 = 除外”、“重复项 = 删除”、“投影列表 = 手动”。

如何让 query3 填充仅包含仅出现在 query1 中的客户列表的数据项“客户”?

4

2 回答 2

1

在 SQL 术语中,您想要

select T2.C1
from T1
  left outer join T2 on T1.C1 = T2.C1
where T2.C1 is null

因此,在 Cognos 报告的查询窗格中...

  • 使用常规连接。
  • 使用来自两个查询的客户加入。
  • 在 query1 端将基数更改为 1..1,在 query2 端将基数更改为 0..1。
  • 在 query3 的过滤器中,为 query2.customer 添加一个过滤器为空。
于 2020-07-15T20:31:42.023 回答
0

EXCEPT 不是联接。它用于比较两个数据集。

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/set-operators-except-and-intersect-transact-sql?view=sql-server-2017

您需要的是 INNER JOIN。这将是 Cognos 工具箱中的连接工具。

于 2019-06-18T18:49:19.307 回答