[firebase-br] Não consigo fazer Update com INNER JOIN ?

Eduardo Bahiense eduardo em icontroller.com.br
Seg Jan 21 18:52:39 -03 2008


Olá Chico

Esta sintaxe sugerida não existe no FB, ou eu estou desatualizado.

A sintaxe abaixo deve funcionar.

Update SALDONOTAFISCAL SNF
set
  SALDONF        = 0,
  SALDOPARCELA   = 0,
  SALDODESCONTO  = 0,
  SALDODEVOLUCAO = 0,
  SALDOTOTAL     = 0
where

  exists(SELECT 1
         FROM CONTAPAGARNF
         WHERE
           NUMERONF          = SNF.NUMERONF
           AND LANCAMENTO    = SNF.LANCAMENTO
           AND CONTACONTABIL = SNF.CONTAREDUZIDA
           AND ZERADO IS NULL)

Só veja que a cláusula WHERE está baseada somente no EXISTS. Desta 
forma, se a tabela SNF for muito grande, pode haver degradação de 
performance. Neste caso, seria bom que você tivesse algum outro critério 
específico desta tabela - algum campo de data ou com um flag de 
situação. Mas isso só a sua lógica e os resultados é que vão poder dizer.

Abs

Eduardo


Chico escreveu:
> Então amigo Paulo...
> Eu fiz a sintaxe, conforme o phantom orientou... aí da o seguinte erro:
> "Invalid token.
> Dynamic SQL Error.
> SQL error code = -104.
> Token unknown - line 21, char 1.
> from."
> 
> Aí tentei mudar a ordem de algumas linhas, mas continua dando erro.
> 
> 
> Paulo S X Soares escreveu:
>> Aparentemente, a sugestão do Phantom está certa. Mais especificamente, que
>> problema está ocorrendo?
>>
>>
>> Em 21/01/08, Chico <chico em auditecmatao.com.br> escreveu:
>>   
>>> Tentei, mas infelzimente não aceita phantom...
>>> Você tem alguma outra ajuda?
>>>
>>> Phantom - Spirit of Storm. escreveu:
>>>     
>>>> tente assim:
>>>>
>>>> --------------------------------
>>>> Update SALDONOTAFISCAL
>>>> set
>>>> SALDONF        = 0,
>>>> SALDOPARCELA   = 0,
>>>> SALDODESCONTO  = 0,
>>>> SALDODEVOLUCAO = 0,
>>>> SALDOTOTAL = 0
>>>> from SALDONOTAFISCAL SNF
>>>> INNER JOIN CONTAPAGARNF CP
>>>> ON (SNF.NUMERONF      = CP.NUMERONF
>>>> and SNF.LANCAMENTO    = CP.LANCAMENTO
>>>> and SNF.CONTAREDUZIDA = CP.CONTACONTABIL
>>>> and CP.ZERADO IS NULL)
>>>> --------------------------------
>>>>
>>>> phantom
>>>>
>>>>       
>>>>> ----------------------------------------------------------------------
>>>>>
>>>>> Message: 1
>>>>> Date: Mon, 21 Jan 2008 08:30:18 -0300
>>>>> From: Chico <chico em auditecmatao.com.br>
>>>>> Subject: [firebase-br] Não consigo fazer Update com INNER JOIN ?
>>>>> To: IB/FB <lista em firebase.com.br>
>>>>> Message-ID: <4794824A.2020102 em auditecmatao.com.br>
>>>>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>>>>
>>>>> Pessoal, estou fazendo:
>>>>>
>>>>> Update SALDONOTAFISCAL SNF
>>>>> INNER JOIN CONTAPAGARNF CP ON (SNF.NUMERONF      = CP.NUMERONF and
>>>>>                                SNF.LANCAMENTO    = CP.LANCAMENTO and
>>>>>                                SNF.CONTAREDUZIDA = CP.CONTACONTABIL)
>>>>> set
>>>>> SNF.SALDONF        = 0,
>>>>> SNF.SALDOPARCELA   = 0,
>>>>> SNF.SALDODESCONTO  = 0,
>>>>> SNF.SALDODEVOLUCAO = 0,
>>>>> SNF.SALDOTOTAL = 0
>>>>> Where (CP.ZERADO IS NULL)
>>>>>
>>>>> Ele não deixa, não é possivel fazer update com INNER JOIN ?
>>>>>
>>>>>
>>>>>         
>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para editar sua configuração na lista, use o endereço
>>>>       
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>>     
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>
>>>>
>>>>       
>>> --
>>> Abraços
>>> Chico
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para editar sua configuração na lista, use o endereço
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>>     
>>
>>
>>   
> 





Mais detalhes sobre a lista de discussão lista