[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