[firebase-br] Merge com condição na tabela Fonte

Sofia Bonato de Moraes - EES sbonato em ees.com.br
Qui Fev 23 15:47:23 -03 2017


Pessoal, tenho a seguinte tabela:

Tmpp_lote

Cod transmissão                   cod_cli   lote    desc

'1                             ', '000001', '001', '001'

'1                             ', '000001', '001', '001'

'000000000000000000000000000017', '000004', '001', '001' 

'000000000000000000000000000019', '000004', '001', '001'

'000000000000000000000000000020', '000004', '001', '001'

 

A qual quero usar como fonte para preencher a tabela tdp_lote.

Estou usando o merge:

 

merge into tdp_lote t1 using tmpp_lote t2 on 

t2.cod_cliente = t1.cod_cliente and 

t2.cod_lote = t1.cod_lote AND

t2.cod_transmissao='1'

when matched then update set 

t1.descricao = t2.descricao

when not matched then 

insert (t1.cod_cliente, t1.cod_lote, t1.descricao)

values( t2.cod_cliente, t2.cod_lote, t2.descricao)

 

Porém não funciona, porque ele não está considerando a condição
“t2.cod_transmissao='1'” e aí dá erro porque, ao considerar todos os
registros, dá duplicidade de chave.  Encontrei no site
https://firebirdsql.org/refdocs/langrefupd25-merge.html exatamente este
exemplo, mas não funciona.

Alguém tem alguma ideia?

Obg

Sofia.

 




Mais detalhes sobre a lista de discussão lista