[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