[firebase-br] SQL Dinâmico

Eliomar eliomar em promediconet.com.br
Sáb Mar 19 15:32:41 -03 2005


ok... como outro falou na lista... 
vc tem que colocar a data como sendo
um campo varchar e colocar as ' ' por exemplo

  create procedure SP_SALDO_PRODUTO(
    CODMAT VARCHAR(12),
    DATA_INICIAL VARCHAR(12),
    DATA_FINAL VARCHAR(12))
  returns (
    rCODMAT VARCHAR(12),
    rSALDO NUMERIC(10,2))
  as
    declare variable vSQL VARCHAR(200);
    declare variable vTOTENTRADAS NUMERIC(10,2);
    declare variable vTOTSAIDAS NUMERIC(10,2);
  begin
    vSQL='Select CODMAT,SUM(ENTRADA),SUM(SAIDA) From TB_ESTOQUE';
    vSQL=vSQL||' Where (DATA BETWEEN '||:DATA_INICIAL||' and '||:DATA_FINAL||')';
    if (Not CODMAT IS NULL) then
       vSQL=vSQL||'  and CODMAT='||:CODMAT;
    vSQL=vSQL||' Group By CODMAT';

    For Execute Statement :vSQL
    Into rCODMAT,vTOTENTRADAS,vTOTSAIDAS
    Do
    Begin
      rSALDO=vTOTENTRADAS-vTOTSAIDAS;
      suspend;
    End

  end

ai fazer a chamada assim:

SELECT * FROM SP_SALDO_PRODUTO('0252-0017-8','01.01.2001','01.01.2002').

tenho certeza que funciona. rsrsr

Agradecido.
Eliomar,
ICQ - 167715482
Soft-Data Softwares Administrativos
hptt://www.promediconet.com.br







Mais detalhes sobre a lista de discussão lista