【发布时间】:2022-02-16 14:45:19
【问题描述】:
我编写了此处显示的查询,该查询组合了三个表并返回来自appeal_tickets 的at_ticket_num 重复但针对不同的at_sys_ref 值的行
select top 100
t.t_reference, at.at_system_ref, at_ticket_num, a.a_case_ref
from
tickets t, appeal_tickets at, appeals_2 a
where
t.t_reference in ('AB123','AB234') -- filtering on these values so that I can see that its working
and t.t_number = at.at_ticket_num
and at.at_system_ref = a.a_system_ref
and at.at_ticket_num IN (select at_ticket_num
from appeal_tickets
group by at_ticket_num
having count(distinct at_system_ref) > 1)
order by
t.t_reference desc
这是输出:
t_reference at_system_ref at_ticket_num a_case_ref
-------------------------------------------------------
AB123 30838974 23641583 1111979010
AB123 30838976 23641583 1111979010
AB234 30839149 23641520 1111977352
AB234 30839209 23641520 1111988003
我想对此进行修改,使其仅返回 t_reference 重复但针对不同 a_case_ref 的记录。所以在上述情况下,只会返回 AB234 的记录。
任何帮助将不胜感激。
【问题讨论】:
-
请注意,表有行和列,而不是记录和字段。
-
今日提示:始终使用现代、明确的
JOIN语法!更容易编写(没有错误),更容易阅读和维护,如果需要更容易转换为外连接! -
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(30 年!! 前),不鼓励使用它 -
您使用的是什么 DBMS?请用它标记您的请求。
-
好的。我正在使用 SQL 服务器。已标记。
标签: sql sql-server