USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  SQL query
Marco Dias
não registrado
Postada em 07/05/2004 14:01 hs   
Boa tarde amigos eu tenho um banco de dados em sybase, tenho uma coluna chamada op(ordem de pagamento) por erro no meu código duplicou 417 ops, com este select:
select pf1.filial, pf1.cgc_cliente, pf1.contrato, pf1.dt_movto, pf1.op
from processo_financeiro pf1, processo_financeiro pf2
where pf1.op = pf2.op
  and pf1.dt_movto < pf2.dt_movto
Consigo selecionar as duplicadas que são as q tem a data de movimento mais antigas, mas eu gostaria de dar um update no primeiro digito destas q começam com 2 para 1 e fiz:
update processo_financeiro
   set op = '1'||substr(op,2,7)
where (filial,cgc_cliente,contrato,dt_movto,op) =
(select pf1.filial, pf1.cgc_cliente, pf1.contrato, pf1.dt_movto, pf1.op
from processo_financeiro pf1, processo_financeiro pf2
where pf1.op = pf2.op
  and pf1.dt_movto < pf2.dt_movto)
Só que o sybase diz que tem um erro perto da da vírgula (,) mas não diz onde alguem pode me ajudar.
 
Ufa!!!!!!
     
Jose.Niz
CURITIBA
PR - BRASIL
Postada em 07/05/2004 17:33 hs         
A parte em negrito não tem sentido algum em SQL ANSI:
 
update processo_financeiro
   set op = '1'||substr(op,2,7)
where (filial,cgc_cliente,contrato,dt_movto,op) =
(select pf1.filial, pf1.cgc_cliente, pf1.contrato, pf1.dt_movto, pf1.op
from processo_financeiro pf1, processo_financeiro pf2
where pf1.op = pf2.op
  and pf1.dt_movto < pf2.dt_movto)

Tente isso:
 
update processo_financeiro upf
   set op = '1'||substr(op,2,7)
where EXISTS ( select pf1.filial, pf1.cgc_cliente, pf1.contrato, pf1.dt_movto, pf1.op
from processo_financeiro pf1, processo_financeiro pf2
where pf1.op = pf2.op
  and pf1.dt_movto < pf2.dt_movto
  AND ( upf.filial = pf1.filial AND upf.cgc_cliente = pf1.cgc_cliente
            AND upf.contrato = pf1.contrato AND upf.dt_movto = pf1.dt_movto
            AND upf.op = pf1.op )
)
 
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página