[firebase-br] UPDATE

Washington Tavares washingtontavares em gmail.com
Qui Ago 17 14:01:14 -03 2006


Testa esse update, por que se resolver voce não precisaria da store
procedure:
UPDATE VAR0310
SET ESTAT=ESTAT+ ( SELECT QUANT FROM VAR0410 WHERE NRPED=:NRPED
AND CDPRO=(SELECT CDPRO FROM VAR0410 WHERE NRPED=:NRPED) )
WHERE CDPRO=(SELECT CDPRO FROM VAR0410 WHERE NRPED=:NRPED)

Washington Tavares

2006/8/17, Washington Tavares <washingtontavares em gmail.com>:
>
> Tente dessa forma, veja que o que eu adicionei está em minusculo:
>
>
> SET TERM^
> CREATE PROCEDURE SP_ATU_PEDIDO ( NRPED INTEGER )
> AS
> declare variable quant integer;
> declare variable cdpro integer;
>
> BEGIN
> /*ATUALIZA A TABELA VAR0310*/
> FOR  SELECT QUANT , CDPRO FROM VAR0410 WHERE NRPED=:NRPED into :quant,
> :cdpro DO
>    BEGIN
>        UPDATE VAR0310 SET ESTAT=ESTAT+ :quant WHERE CDPRO=:cdpro
>
>    END;
>
> /*ATUALIZA A TABELA VAR0410 COMO FLAG*/
> UPDATE VAR0410 SET FLAGA=S WHERE NRPED=:NRPED
>
> END;^
>
> Em 17/08/06, BandaLemuel <bandalemuel em yahoo.com.br> escreveu:
>
> > Estou tentando criar uma procedure para o UPDATE mas esta dando erro no
> > DO
> > do for.. alguem pode me ajudar a verificar o que esta errado
> >
> > SET TERM^
> > CREATE PROCEDURE SP_ATU_PEDIDO ( NRPED INTEGER )
> > AS
> > BEGIN
> > /*ATUALIZA A TABELA VAR0310*/
> > FOR  SELECT QUANT , CDPRO FROM VAR0410 WHERE NRPED=:NRPED  DO
> >     BEGIN
> >         UPDATE VAR0310 SET ESTAT=ESTAT+ VAR0410.QUANT WHERE CDPRO=
> > VAR0410.CDPRO
> >     END;
> >
> > /*ATUALIZA A TABELA VAR0410 COMO FLAG*/
> > UPDATE VAR0410 SET FLAGA=S WHERE NRPED=:NRPED
> >
> > END;^
> >
> > Obrigado
> >
> >
> > --------------------------------------
> > ----- Original Message -----
> > From: "Francisco A Souza" < francisco em logosinfo.com.br>
> > To: "FireBase" <lista em firebase.com.br>
> > Sent: Thursday, August 17, 2006 1:13 PM
> > Subject: Re: [firebase-br] UPDATE
> >
> >
> > Eu fiz um sp, para ler o movimento de uma tabela(tipo pedidos), e
> > atualizar
> > outra tabela que grava o resumo das vendas do pedido, tipo um giro de
> > vendas.
> > vai o codigo da uma olhada e adapta ao seu sistema:
> >
> > CREATE PROCEDURE CRIAGIROMES
> > RETURNS (
> >     ID_LOJA INTEGER,
> >     MES SMALLINT,
> >     ANO SMALLINT,
> >     CODIGO INTEGER,
> >     QUANTIDADE NUMERIC (18, 3),
> >     TOTAL NUMERIC (18, 6))
> > ASBEGIN
> >   DELETE FROM TABELA_PRODUTOS_GIRO_MES; //aqui fiz uma limpeza na tabela
> > de
> > giros.
> >   FOR SELECT
> >       CF_ITENS.id_loja,
> >       EXTRACT(MONTH FROM CF.emissao) AS MES,
> >       EXTRACT(YEAR FROM CF.EMISSAO) AS ANO,
> >       CF_ITENS.CODIGO,
> >       SUM(CF_ITENS.QUANTIDADE) AS Quantidade,
> >       SUM(CF_ITENS.PRECO*cf_itens.quantidade) AS TOTAL
> >     FROM
> >       CF_ITENS
> >       LEFT JOIN CF ON (CF_ITENS.ID = CF.ID) AND (CF_ITENS.ID_LOJA =
> > CF.ID_LOJA)
> >       WHERE CODIGO>0 AND CF.status<>'C'
> >     GROUP BY
> >       CF_ITENS.id_loja,MES,ANO,CF_ITENS.CODIGO
> >
> >     INTO
> >       :ID_LOJA,
> >       :MES,
> >       :ANO,
> >       :CODIGO,
> >       :QUANTIDADE,
> >       :TOTAL                           /// aqui fiz o select agrupando
> > po
> > produto,mes e ano somando as quantidades
> > DO
> > BEGIN
> > INSERT INTO TABELA_PRODUTOS_GIRO_MES  /(
> >     ID_PRODUTO,
> >     ID_LOJA,
> >     VENDAS,
> >     MES,
> >     ANO,
> >     TOTAL_VENDAS)
> >   VALUES (
> >     :CODIGO,
> >     :ID_LOJA,
> >     :QUANTIDADE,
> >     :MES,
> >     :ANO,
> >     :TOTAL); /// aqui fiz inclusao na tabela de giros.
> >     END
> > END
> >
> >
> >
> > ______________________________________________
> > 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
> >
> >
> > --
> > No virus found in this incoming message.
> > Checked by AVG Free Edition.
> > Version: 7.1.405 / Virus Database: 268.11.1/421 - Release Date:
> > 16/08/2006
> >
> >
> >
> >
> > _______________________________________________________
> > O Yahoo! está de cara nova. Venha conferir!
> > http://br.yahoo.com
> >
> >
> > ______________________________________________
> > 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
> >
>
>
>
> --
> Washington Tavares
>



-- 
Washington Tavares



Mais detalhes sobre a lista de discussão lista