[firebase-br] PROCEDURE

Jeter Rabelo Ferreira jeter.rabelo em gmail.com
Qua Set 20 13:52:44 -03 2006


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
>



Mais detalhes sobre a lista de discussão lista