Fórum Ajuda com Stored Procedure #400258

03/05/2011

0

Preciso montar um stored procedure, mas nao tenho ideia de como fazer, preciso retornar o saldo de um produto passado como parametro, o saldo sera o resultado da soma das entradas que estao em uma tabela chamada ENTRADAS subtraindo da soma das vendas que estao em uma tabela chamada VENDAS, utilizo delphi 7 com dbexpress e FB 2. Se alguem puder me ajudar a montar agradeço mt.     Abs  
Felipe Ip

Felipe Ip

Responder

Posts

03/05/2011

Jeverson Paula

CREATE PROCEDURE SP_ATUALIZA_SALDO
RETURNS (
    REC_IDCONTASREC INTEGER,
    ID_CLIENTE INTEGER,
    VLR_SALDO DOUBLE PRECISION)
AS
declare variable NAVENCER DOUBLE PRECISION;
declare variable NVENCIDO DOUBLE PRECISION;
BEGIN   UPDATE Tcontas_receber SET Tcontas_receber.Vlr_saldo = 0 ;
  UPDATE Tpessoas SET Tpessoas.Pes_saldo_devedor = 0 ;     FOR
    SELECT
    Tcontas_receber.Rec_idcontasrec,
    Tcontas_receber.Id_cliente,
    Tcontas_receber.Vlr_saldo
    FROM Tcontas_receber
    INTO :REC_IDCONTASREC,
         :ID_CLIENTE,
         :VLR_SALDO
  DO
  BEGIN    Select
   Coalesce(Sum(Parcelasrc.Valor_rec),0)
   FROM Tcontas_receber
   inner join Parcelasrc on Parcelasrc.Id_receber = Tcontas_receber.Rec_idcontasrec
   WHERE Tcontas_receber.Rec_idcontasrec = :Rec_idcontasrec
     AND Parcelasrc.Data_vencimento > Current_date
     and Parcelasrc.Data_rec is Null
    INTO :Navencer;    Select
   Coalesce(Sum(Parcelasrc.Valor_rec),0)
   FROM Tcontas_receber
   inner join Parcelasrc on Parcelasrc.Id_receber = Tcontas_receber.Rec_idcontasrec
   WHERE Tcontas_receber.Rec_idcontasrec = :Rec_idcontasrec
     AND Parcelasrc.Data_vencimento <= Current_date
     and Parcelasrc.Data_rec is Null
    INTO :Nvencido;     UPDATE Tcontas_receber SET Tcontas_receber.Vlr_saldo = :Nvencido + :Navencer
    WHERE Tcontas_receber.Rec_idcontasrec = :Rec_idcontasrec ;
    UPDATE Tpessoas SET Tpessoas.Pes_saldo_devedor = (Tpessoas.Pes_saldo_devedor + :Nvencido + :Navencer)
    where Tpessoas.Pes_idpessoa = :Id_cliente;     SUSPEND;
  END
END   Acho que esse exemplo pode te ajudar....
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar