[firebase-br] Numa sóinstrução de Sql?

Mário Reis mariodosreyx em gmail.com
Qua Out 28 22:00:50 -03 2009



Tenho u´ma TabelaPreçário com:
Ex:
Prod_ID, Periodo_ID, Preco_ID, DT_ENT_Vigor    Valor
-----------------------------------------------------
 "QTU"        "U"         1      2001-12-15   030,00€     
 "QTA"        "A"         1      2001-12-30   090,00€     
 "QTA"        "A"         2      2001-12-10   125,00€   
 "QTU"        "U"         1      2004-02-25   100,00€     
 "QTA"        "A"         1      2004-02-25   150,00€     
 "QTA"        "A"         2      2004-02-25   250,00€     

Como fazer isto numa só instrução de Sql?

  WVLR_TOT_PAG=0.00 ;
      -- Preço em vigor à Data
         SELECT MAX(P.DTENTV) FROM PRECARIO P
          WHERE P.PROD_ID=:WPROD_ID
            AND P.PERP_ID=:WPER_ID
            AND P.PREC_ID=:WPREC_ID
            AND P.DTENTV<= :WDTENTV  (2004-01-11) 
           INTO :WMAXDATE; (Ex:=2001-12-10 a maior das menores até=2004-01-11)
           
        IF (WMAXDATE IS NOT NULL) THEN            
          SELECT P.VALOR FROM PRECARIO P
           WHERE P.PROD_ID=:WPROD_ID
             AND P.PERP_ID=:WPER_ID
             AND P.PREC_ID=:WPREC_ID
             AND P.DTENTV=:WMAXDATE    (=>2001-12-10 a maior das menores...)
            INTO :WVLR_TOT_PAG   ;     (Ex: 125,00€)

Obrigado
      





Mais detalhes sobre a lista de discussão lista