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

Maycon Oleczinski maycon.xvision em gmail.com
Sáb Nov 21 09:01:12 -03 2009


 

Tente isto...

 

 

         -- Preço em vigor à Data
          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= (

                                     NULLIF( SELECT MAX(PS.DTENTV) FROM PRECARIO PS
                                                 WHERE PS.PROD_ID=P.PROD_ID
                                                     AND PS.PERP_ID=P.PERP_ID
                                                     AND PS.PREC_ID=P.PREC_ID
                                                     AND PS.DTENTV<= :WDTENTV  (2004-01-11), CURRENT_DATE )
                                    )

            INTO :WVLR_TOT_PAG   ;     (Ex: 125,00€)

 

 

OBS: No caso de estar nula a data, neste script setei para pegar a data atual. Ajuste conforme a sua necessidade.

 

Att.

 

 

Maycon


 
> Date: Fri, 20 Nov 2009 16:53:04 -0300
> From: cury.fb em gmail.com
> To: lista em firebase.com.br
> Subject: Re: [firebase-br] Numa sóinstrução de Sql?
> 
> Eu não entendi o que vocÊ quer fazer !
> 
> 
> 
> 2009/10/28 Mário Reis <mariodosreyx em gmail.com>:
> >
> >
> > 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
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
 		 	   		  
_________________________________________________________________
Você já ama o Messenger? Conheça ainda mais sobre ele no Novo site de Windows Live.
http://www.windowslive.com.br/?ocid=WindowsLive09_MSN_Hotmail_Tagline_out09


Mais detalhes sobre a lista de discussão lista