Я борюсь с Оракулом (снова), и, как относительный новичок, надеялся, что кто-то может посоветовать.
У нас есть база данных Assyst с несколькими таблицами. То, что я пытаюсь сделать, это сообщить обо всех записях в act_reg, где присутствует инцидент.incident_id - но ТОЛЬКО если есть хотя бы одно вхождение определенного serv_dept_id в этом акте_reg.
Ясно, как грязь, я знаю.
Я пробовал предложение WHERE EXISTS, однако кажется, что он возвращает строку только в том случае, если строка содержит именно тот serv_dept_id, который я ищу, а не там, где совпадает толькоident_id. Не все записи с инцидентами, если они присутствуют один или несколько раз.
В приведенном ниже примере есть небольшой объем псевдокода (две выбранные строки Action и Team), поскольку они связаны с другими таблицами и выходят за рамки запроса.
select incident.incident_ref "Call Ref",
act_reg.date_actioned "Date Actioned",
act_reg.action "Action",
act_reg.team "Team"
from incident, act_reg
where incident.incident_id = act_reg.incident_id
and exists (
SELECT jptsys_svd_group.svd_group_id
FROM serv_dept act_svd_2, jptsys_svd_group
WHERE act_svd_2.serv_dept_id = act_reg.serv_dept_id
AND act_svd_2.svd_group_id = jptsys_svd_group.svd_group_id
AND jptsys_svd_group.svd_group_sc = 'TEAM 1 GROUP'
)
То, что я ожидаю (скажем, команда 1 входит в группу 1 команды выше, но нет другой команды):
Call Ref | Date Actioned | Action | Team
--------------------------------------------
27 | 01/01/2019 | Assign | Team 1
27 | 01/01/2019 | Update | Team 2
27 | 02/01/2019 | Info | Team 2
27 | 02/01/2019 | Close | Team 1
Что я получаю:
Call Ref | Date Actioned | Action | Team
--------------------------------------------
27 | 01/01/2019 | Assign | Team 1
27 | 02/01/2019 | Close | Team 1
Любая помощь очень ценится. Я не уверен, куда идти отсюда.
Пример данных ниже:
Call Ref | Date Actioned | Action | Team
--------------------------------------------
27 | 01/01/2019 | Assign | Team 1
28 | 01/01/2019 | Create | Team 3
29 | 01/01/2019 | Create | Team 4
27 | 01/01/2019 | Update | Team 2
27 | 02/01/2019 | Info | Team 2
31 | 02/01/2019 | Update | Team 2
27 | 02/01/2019 | Close | Team 1
Я хотел бы видеть все строки для ссылки на вызов, если (в этом случае) команда 1 выполнила какое-либо действие над ним. Таким образом, в приведенных выше примерах данных будут возвращены все строки с вызовом ref 27, потому что команда 1 присутствует в некоторых строках с этой ссылкой.