Verificar Registros em Duplicidade com Nivel Diferente

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
diegop_m
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Dom, 14 Mai 2017 10:26 pm

Pessoal Boa Tarde,

Novamente precisarei da ajuda de vocês para desenvolver uma consulta que é:

Tenho uma tabela de lançamentos e nela tenho diversos produtos, e cada produto tem um nível... preciso identificar todos os produtos que estejam duplicados com níveis diferentes.

poderiam me ajudar?

Mais uma vez agradeço.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Seria legal você colocar aqui como é essa tabela e alguns exemplos de dados que tem dentro dela.
Isso facilita a quem quiser ajudar a responder.
Avatar do usuário
diegop_m
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Dom, 14 Mai 2017 10:26 pm

Bom Dia,

Obrigado pelo retorno.

Tenho os seguintes campos na tabela, EMPRESA, FILIAL, DATA, PRODUTO, INDICADOR_PRODUTO, NÍVEL

Nessa tabela cada produto tem um nível, porém esta acontecendo situações que tenho o mesmo produto duplicado ou até mesmo triplicado com níveis diferentes e não pode acontecer essa situação.

Eu teria que identificar os produtos duplicados que tenham níveis diferentes dentro do mês para que eu possa fazer as correções e igualar o nível.
geovani
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Sáb, 06 Ago 2016 9:22 am
Localização: Joinville-SC
Contato:
Geovani Cristofolini
Consultor de Business intelligence
http://useweknow.com

Boa tarde,

Selecionar tudo

--TABELA TEMPORARIA
with tabela as
(
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/01/2017','DD/MM/YYYY') DATA, 'A' PRODUTO, 1 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/02/2017','DD/MM/YYYY') DATA, 'A' PRODUTO, 1 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/02/2017','DD/MM/YYYY') DATA, 'A' PRODUTO, 1 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('10/02/2017','DD/MM/YYYY') DATA, 'A' PRODUTO, 1 INDICADOR_PRODUTO, 7 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/02/2017','DD/MM/YYYY') DATA, 'A' PRODUTO, 1 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/01/2017','DD/MM/YYYY') DATA, 'B' PRODUTO, 2 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/02/2017','DD/MM/YYYY') DATA, 'B' PRODUTO, 2 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('05/01/2017','DD/MM/YYYY') DATA, 'B' PRODUTO, 2 INDICADOR_PRODUTO, 5 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/01/2017','DD/MM/YYYY') DATA, 'B' PRODUTO, 2 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/02/2017','DD/MM/YYYY') DATA, 'C' PRODUTO, 3 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/01/2017','DD/MM/YYYY') DATA, 'B' PRODUTO, 2 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL union all
Select 1 EMPRESA, 1 FILIAL, TO_DATE('01/02/2017','DD/MM/YYYY') DATA, 'B' PRODUTO, 2 INDICADOR_PRODUTO, 1 NIVEL FROM DUAL 
)

--CONSULTA
Select
 *
from
( 
Select
 EMPRESA,
 FILIAL,
 INDICADOR_PRODUTO,
 PRODUTO,
 DATA,
 NIVEL,
 COUNT(*) OVER (PARTITION BY PRODUTO, TO_CHAR(DATA,'YYYYMM') ORDER BY PRODUTO, TO_CHAR(DATA,'YYYYMM')) Total
From
 tabela
)
where Total > 1
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes