[firebase-br] Procedure

Kléber Caneva kdcc em terra.com.br
Qua Set 20 09:42:30 -03 2006


Acho que o problema é porque você não está realicionando uma tabela com a 
outra, e ele está retornando todo o cruzamento entre as tabelas.

FOR
      SELECT P.COD_PRODUTO, MAX(D.VR_UNIT) VR_UNIT, MAX(P.QUANTIDADE)
      FROM T_PROD_PEDIDO P
      LEFT JOIN  T_PRODUTO D ON (P.COD_PRODUTO = D.COD_PRODUTO)
      WHERE P.DT_EMISSAO BETWEEN :DAT1 AND :DAT2
      GROUP BY P.COD_PRODUTO
      ORDER BY MAX(P.QUANTIDADE) DESC
      INTO :CODIGO, :VALOR, :QUANT DO

[]´s

Kléber Caneva

----- Original Message ----- 
From: "Caçula" <info em cacula.ind.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, September 20, 2006 8:58 AM
Subject: Re: [firebase-br] Procedure


Rubem,
Já tinha feito isso. O problema, é que vai me retornar o maior valor que
tiver, e não o valor verdadeiro da mercadoria, ou seja, todas as
mercadorias vão sair com o mesmo valor.


Rubem Nascimento da Rocha escreveu:
> Olha a procedure abaixo e compare ela depois com o código que vc mandou, e
> vc vai perceber o que vc deixou de fazer:
>
> CREATE PROCEDURE PRODUTOS
> (
>    DAT1 DATE,
>    DAT2 DATE
> )
> RETURNS
> (
>    CODIGO INTEGER,
>    QUANT NUMERIC(15,3),
>    VALOR NUMERIC(15,3)
> )
> AS
>   BEGIN
>     FOR SELECT P.COD_PRODUTO, MAX(D.VR_UNIT) 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
>     BEGIN
>       SUSPEND;
>     END
> END
>
> Sds.
>
>
>
>> From: Caçula <info em cacula.ind.br>
>> Reply-To: FireBase <lista em firebase.com.br>
>> To: Firebird <lista em firebase.com.br>
>> Subject: [firebase-br] Procedure
>> Date: Wed, 20 Sep 2006 08:36:24 -0300
>>
>> 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
>>
>
> _________________________________________________________________
> MSN Busca: fácil, rápido, direto ao ponto.  http://search.msn.com.br
>
>
> ______________________________________________
> 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

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1158753832.513731.20274.caneria.hst.terra.com.br,6463,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 19/09/2006 / Versão: 
4.4.00/4855
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista