[firebase-br] RES: PROCEDURE
Carlos Wilson
cwfsa em yahoo.com.br
Seg Set 25 21:33:27 -03 2006
Eu gostaria de entender porque vocês usam tantas procedures, se quase tudo
pode ser feito por select. Tenho um sistema de Vendas e Crediário e tenho
apenas 2 procedures, e no meu sistema eu tenho relatórios estatísticos,
gráficos e outros. Digo isso porque um dos primeiros artigos que li sobre
firebird foi para não abusar das procedures, então se houver alguma vantagem
real em usar procedures eu gostaria de saber.
Grato.
Carlos Wilson.
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Jeter Rabelo Ferreira
Enviada em: quarta-feira, 20 de setembro de 2006 13:53
Para: FireBase
Assunto: Re: [firebase-br] PROCEDURE
Olá Caçula, faz o seguinte:
FOR SELECT DISTINCT P.COD_PRODUTO, MAX(P.QUANTIDADE)
FROM T_PROD_PEDIDO P
WHERE P.DT_EMISSAO BETWEEN :DAT1 AND :DAT2
GROUP BY P.COD_PRODUTO
INTO :CODIGO, QUANT
DO
begin
SELECT VR_UNIT FROM T_PRODUTO T
WHERE T.COD_PRODUTO=:CODIGO
INTO VALOR;
suspend;
end;
Obs: Não testei.
[]'s
Jéter Rabelo Ferreira
Em 20/09/06, Caçula <info em cacula.ind.br> escreveu:
>
> Bom dia lista.
>
> Estou desenvolvendo uma procedure, para selecionar os produtos mais
> vendidos. Estou fazendo uma seleção da tabela de produtos do pedido, mas
> também preciso do valor unitário que consta no cadastro do produto, mas
> não estou conseguindo. Veja como ficou
>
> CREATE PROCEDURE PRODUTOS (
> DAT1 DATE,
> DAT2 DATE)
> RETURNS (
> CODIGO INTEGER,
> QUANT NUMERIC(15,3),
> VALOR NUMERIC(15,3))
> AS
> begin
> /* Procedure Text */
> FOR SELECT P.COD_PRODUTO, D.VR_UNIT, MAX(P.QUANTIDADE) FROM
> T_PROD_PEDIDO P, T_PRODUTO D
> WHERE P.DT_EMISSAO BETWEEN :DAT1 AND :DAT2
> GROUP BY P.COD_PRODUTO
> ORDER BY MAX(P.QUANTIDADE) DESC INTO :CODIGO, :VALOR, :QUANT
> DO
> suspend;
> end
>
> Se deixar assim, dá erro, e se colocar o D.VR_UNIT no GROUP BY, ele me
> retorna informação errada. Como que faço pra agrupar por código de
> produto, e conseguir pegar o VR_UNIT da tabela de produto.
>
> Obrigado
>
> Alexandre Gonçalves
>
> ______________________________________________
> 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
>
______________________________________________
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
_______________________________________________________
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora!
http://br.mobile.yahoo.com/mailalertas/
Mais detalhes sobre a lista de discussão lista