JOIN 两个表,但只在每个唯一记录的第一个实例中包含第一个表中的数据

用户820304

标题可能令人困惑。

我有一个案例表,每个案例可以包含许多任务。为了为每个任务实现不同的工作流程,我有不同的表,例如 Case_Emails、Case_Calls、Case_Chats 等...

我想构建一个最终将导出到 Excel 的查询。在此查询中,我想列出每个任务,并且这些任务已经使用通用格式通过另一个表中的 UNION 连接在一起。对于查询中的每个任务,我只希望与案例关联的第一个任务包含案例表中的详细信息。下面的例子:

+----+---------+------------+-------------+-------------+-------------+
| id | Case ID | Agent Name | Task Info 1 | Task Info 2 | Task Info 3 |
+----+---------+------------+-------------+-------------+-------------+
| 1  | 4000000 | Some Name  | Detailstuff | Stuffdetail | Thingsyo    |
| 2  |         |            | Detailstuff | Stuffdetail | Thingsyo    |
| 3  |         |            | Detailstuff | Stuffdetail | Thingsyo    |
| 4  | 4000003 | Some Name  | Detailstuff | Stuffdetail | Thingsyo    |
| 5  |         |            | Detailstuff | Stuffdetail | Thingsyo    |
| 6  | 4000006 | Some Name  | Detailstuff | Stuffdetail | Thingsyo    |
+----+---------+------------+-------------+-------------+-------------+

我最初的方法是尝试对 Case ID 进行 LEFT JOIN,但我不知道如何从额外的行中过滤掉数据。

用户820304

发现我可以在查询中命名我的表,如下所示:

FROM Case_Calls Calls

使用这个其他名称,我能够根据子查询进行过滤:

IIF( Calls.[ID] <> (select top 1 [ID] from Case_Calls where [Case ID] = Calls.[Case ID]), '', Cases.[Creator]) As [Case Creator]

这个解决方案给了我我想要的结果:) 这是相当丑陋的 SQL,当我处理几十列时很难解析,但它完成了工作!

我仍然很好奇是否有更好的解决方案......

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于第一个表的LEFT JOIN ON

来自分类Dev

LEFT JOIN查询未返回第一个表中的所有行

来自分类Dev

Codeigniter-join()仅返回一个“第一个表”

来自分类Dev

Oracle Join表的日期范围在第一个表中,日期在第二个表中

来自分类Dev

LEFT OUTER JOIN并且只返回第一个比赛

来自分类Dev

LINQ Join 多次只给出第一个结果

来自分类Dev

App Insights 'join' 只返回第一个结果

来自分类Dev

SQL Select / Join,将结果限制为查询列表中每个元素的第一个条目

来自分类Dev

SQL Select / Join,将结果限制为查询列表中每个元素的第一个条目

来自分类Dev

SQL 两个左连接只产生第一个表中的数据

来自分类Dev

SQL Join:如何显示第一个表数据,即使是第二个表条件为假

来自分类Dev

使用 SELECT - JOIN 从同一个表中获取两个值

来自分类Dev

x 和 y 数据帧之间的 left_join 函数返回的行数比 r 中的第一个数据帧多

来自分类Dev

SQL JOIN在第一个结果之后省略其他列

来自分类Dev

为什么 JS Join 在第一个值之前添加分隔符?

来自分类Dev

根据业务逻辑获取第一个join结果

来自分类Dev

Teradata - 两个表之间的连接 - 保留第一个表中的值

来自分类Dev

mysql查询加入,比较两个表并返回第一个表中的所有记录

来自分类Dev

无法基于两个条件两次 JOIN 同一个表

来自分类Dev

只能在JOIN中的一个表上限制

来自分类Dev

只能在JOIN中的一个表上限制

来自分类Dev

PHP在一个查询中显示来自四个表的数据(即:LEFT JOIN)

来自分类Dev

为什么只更改表中第一个数字的第一个格式

来自分类Dev

Mysql在两个表中插入其中第一个表具有外键并更新第一个表

来自分类Dev

访问-比较两个表并在第一个表中更新或插入数据

来自分类Dev

SQL-具有两个表和一个JOIN的WHERE之间的区别

来自分类Dev

Left Join / IS NULL如何消除一个表中存在而不是另一表中的记录?

来自分类常见问题

在Spring Boot中使用mysql join作为一个java对象返回两个表的数据

来自分类Dev

根据每个唯一记录熊猫数据帧的第一个和最后一个计算每个事件的总时间

Related 相关文章

  1. 1

    关于第一个表的LEFT JOIN ON

  2. 2

    LEFT JOIN查询未返回第一个表中的所有行

  3. 3

    Codeigniter-join()仅返回一个“第一个表”

  4. 4

    Oracle Join表的日期范围在第一个表中,日期在第二个表中

  5. 5

    LEFT OUTER JOIN并且只返回第一个比赛

  6. 6

    LINQ Join 多次只给出第一个结果

  7. 7

    App Insights 'join' 只返回第一个结果

  8. 8

    SQL Select / Join,将结果限制为查询列表中每个元素的第一个条目

  9. 9

    SQL Select / Join,将结果限制为查询列表中每个元素的第一个条目

  10. 10

    SQL 两个左连接只产生第一个表中的数据

  11. 11

    SQL Join:如何显示第一个表数据,即使是第二个表条件为假

  12. 12

    使用 SELECT - JOIN 从同一个表中获取两个值

  13. 13

    x 和 y 数据帧之间的 left_join 函数返回的行数比 r 中的第一个数据帧多

  14. 14

    SQL JOIN在第一个结果之后省略其他列

  15. 15

    为什么 JS Join 在第一个值之前添加分隔符?

  16. 16

    根据业务逻辑获取第一个join结果

  17. 17

    Teradata - 两个表之间的连接 - 保留第一个表中的值

  18. 18

    mysql查询加入,比较两个表并返回第一个表中的所有记录

  19. 19

    无法基于两个条件两次 JOIN 同一个表

  20. 20

    只能在JOIN中的一个表上限制

  21. 21

    只能在JOIN中的一个表上限制

  22. 22

    PHP在一个查询中显示来自四个表的数据(即:LEFT JOIN)

  23. 23

    为什么只更改表中第一个数字的第一个格式

  24. 24

    Mysql在两个表中插入其中第一个表具有外键并更新第一个表

  25. 25

    访问-比较两个表并在第一个表中更新或插入数据

  26. 26

    SQL-具有两个表和一个JOIN的WHERE之间的区别

  27. 27

    Left Join / IS NULL如何消除一个表中存在而不是另一表中的记录?

  28. 28

    在Spring Boot中使用mysql join作为一个java对象返回两个表的数据

  29. 29

    根据每个唯一记录熊猫数据帧的第一个和最后一个计算每个事件的总时间

热门标签

归档