Duvida de insert

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qui, 18 Out 2007 8:02 am

Pessoal bom dia.

Este insert pega informações de uma tabela e verifica se o COD_TRAT_CC existe nas tabelas TAB_CC e TABELA_TRATAMENTO, se o codigo existir em uma das duas tabelas e não deve inserir. Porém ele continua a inserir o codigo que já existe na tabela TAB_CC na TABELA_TRATAMENTO, o que eu estou fazendo de errado?


Código: Selecionar todos
insert into TABELA_TRATAMENTO
           select distinct '13',
                  COD_TRAT_CC,
                  W_DATA,
                  'I'
           from CONTA_CC
           where COD_TRAT_CC not in
          (select COD_CC from TAB_CC) and
           COD_TRAT_CC not in
           (select COD_PROD from TABELA_TRATAMENTO where TAB = '13')


Obrigada!
KRECCHI
krecchi
Localização: São Paulo

KRecchi

Mensagemem Qui, 18 Out 2007 8:34 am

Tenta fazer union, acho que até fica mais fácil de entender a lógica do negócio.

Código: Selecionar todos
where COD_TRAT_CC not in
          (select COD_CC from TAB_CC
           UNION
           select COD_PROD from TABELA_TRATAMENTO where TAB = '13')


ou NOT EXISTS, acho que fica mais rápido:
Código: Selecionar todos
select
  distinct '13'
, x.COD_TRAT_CC
, x.W_DATA
, 'I'
from CONTA_CC x
where NOT EXISTS (select 1
                  from TAB_CC
                  where COD_CC = x.COD_TRAT_CC)
  and NOT EXISTS (select 1
                  from TABELA_TRATAMENTO
                  where COD_PROD = x.COD_TRAT_CC
                    AND TAB = '13')
dr_gori
Localização: Portland, OR USA

Thomas F. G

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


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para SQL

Quem está online

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