Как получить сотрудников, принадлежащих более чем одному владельцу, с помощью Oracle SQL - PullRequest
0 голосов
/ 27 ноября 2009

У меня есть ситуация в оракуле, где у меня есть две таблицы - Таблица A и Таблица B.

Таблица A имеет следующие столбцы (aid, owner_id, app_id) и

Таблица B содержит следующие столбцы (bid, aid, emp_no)

В таблице B есть внешний ключ (помощь) обратно в таблицу A.

На основании приведенных выше таблиц я пытаюсь написать запрос, в котором emp_no в таблице B принадлежит более чем одному owner_id в таблице A.

Практическое правило заключается в том, что emp_no может принадлежать только одному owner_id.

В настоящее время у меня возникают проблемы с данными, когда одно emp_no принадлежит более чем одному owner_id.

Например:

У меня есть ситуация, когда emp_no принадлежит 2 или более owner_ids - именно эти записи мне нужно восстановить, но я не знаю, как это сделать.

Информация, которую я хотел бы получить:

emp_no и owner_id

Любая помощь с запросом будет оценена с использованием Oracle sql.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 ноября 2009

Вы можете попробовать что-то вроде этого

SELECT  emp_no,
        COUNT(DISTINCT owner_ID)
FROM    TableB b INNER JOIN
        TableA a ON b.aid = a.aid
GROUP BY emp_no
HAVING COUNT(DISTINCT owner_ID) > 1
2 голосов
/ 27 ноября 2009

Адаптация ответа astander для получения emp_no и owner_id:

SELECT emp_no, owner_id
FROM (
SELECT  emp_no
       ,owner_id
       ,COUNT(DISTINCT owner_id) OVER (PARTITION BY emp_no) c
FROM    TableB b INNER JOIN 
        TableA a ON b.aid = a.aid 
)
WHERE c > 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...