Como recuperar os funcionários pertencentes a mais de um proprietário usando o Oracle SQL

StackOverflow https://stackoverflow.com/questions/1806851

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu tenho uma situação no Oracle onde eu tenho duas tabelas -. Tabela A e Tabela B

A Tabela A apresenta as seguintes colunas (ajuda, owner_id, app_id) e

Tabela B tem as seguintes colunas (bid, ajuda, EMP_NO)

O Quadro B tem uma chave estrangeira (auxílio) de volta para a Tabela A.

Com base nas tabelas acima, eu estou tentando escrever uma consulta onde um EMP_NO na Tabela B pertence a mais de um owner_id na Tabela A.

A regra de ouro é que um EMP_NO só pode pertencer a apenas um owner_id.

Atualmente eu tenho problemas de dados onde um EMP_NO pertence a mais de um owner_id.

Por exemplo:

Eu tenho uma situação onde EMP_NO pertence a 2 ou mais owner_ids -. São esses registros que eu preciso para recuperar de volta, mas sem saber como

Informações eu gostaria de recuperar é a seguinte:

EMP_NO e owner_id

Qualquer ajuda com consulta seria apreciada usando o Oracle SQL.

Graças.

Foi útil?

Solução

Adaptação resposta de Astander para obter tanto o emp_no e 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;

Outras dicas

Você pode tentar algo como isto

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top