[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