Não seria melhor então criar uma tabela temporaria para fazer isso. Eu sei
que contraria as regras de SGDB mas eu estou pensando seriamente nesta
solução.

2008/2/7, jota. comm <[EMAIL PROTECTED]>:
>
> Olá,
>
> O aggregate pode ajudar você.
>
> http://www.postgresql.org/docs/8.3/interactive/xaggr.html
>
> []s
>
> 2008/2/7, Rafael dos Santos Ferreira <[EMAIL PROTECTED]>:
> >
> > O que eu precisava era mais ou menos isso:
> >
> >   CREATE OR REPLACE FUNCTION "public"."fc_conspedido" (nomproduto
> > varchar, codgrupo integer, codfamilia integer) RETURNS SETOF
> > "pg_catalog"."record" AS
> > $body$
> > declare
> >   retorno record;
> >   rproduto record;
> >   rentrada record;
> >   rsaida record;
> > begin
> >    for rproduto in
> >                select   produtos.pro_codigo--,  produtos.pro_descri,
> > produtos.pro_quaest,
> >                   produtos.pro_preven,  produtos.pro_ponped,
> > produtos.pro_cusmed,
> >                  produtos.pro_cusrep,  produtos.pro_tribut,
> > produtos.pro_unidad,
> >                 (produtos.pro_preven*produtos.pro_quaest) as total,
> > produtos.pro_grupo,
> >                - produtos.pro_famili, produtos.pro_embala,
> > produtos.pro_pesuni,
> >                grupos.gru_descri,  familia.fam_descri
> >                 from
> >                    produtos,grupos,familia
> >                 where
> >                     produtos.pro_famili = familia.fam_codigo and
> >                     produtos.pro_grupo  = grupos.gru_codigo  and
> >                     familia.fam_codgru  = grupos.gru_codigo
> >                 order by
> >                    produtos.pro_grupo,produtos.pro_famili,
> >                    produtos.pro_descri loop
> >
> >
> >                       for rentrada in select produtos.pro_descri,
> > mentrada.men_refere,
> >                         produtos.pro_cusmed,produtos.pro_pesuni,
> > produtos.pro_preven,
> >                         produtos.pro_cusrep,mentrada.men_docume,
> > mentrada.men_codpes,
> >                         mentrada.men_data,ientrada.ien_quantidade,
> > ientrada.ien_valor,
> >                         pessoas.pes_descri
> >                         from
> >                         mentrada, produtos,pessoas ,ientrada
> >                         where
> >                          produtos.pro_codigo = ientrada.ien_codpro
> >                          and
> >                          pessoas.pes_codigo = mentrada.men_codpes
> >                          and
> >                          mentrada.men_refere = ientrada.ien_entrada
> >                          and
> >                          ientrada.ien_codpro =  rproduto.pro_codigo
> >                          and
> >                          ientrada.ien_salvar = 3
> >                          order by men_data  DESC limit 12 loop
> >
> >
> >                         end loop;
> >     return next retorno;
> >    end loop;
> > end;
> > $body$
> > LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
> >   O problema é que eu gostaria de retornar os 12 ultimos registros tudo
> > na mesma linha. E não em linha diferente.
> >
> >   Exemplo :
> >
> >    |   cod    |    Produto  |   Data entrada  | Quantidade |
> >
> > ---------------------------------------------------------------------------
> >
> >         1         Arroz            01/01/2008         10,00
> >         1         Arroz            02/02/2008         20,00
> >         1         Arroz            02/03/2008         25,00
> >
> >
> > Quando na verdade eu precisava disso:
> >
> > |   cod    |    Produto  |   Data entrada  | Quantidade |Data Entrada|
> > Quantidade | Data Entrada| Quantidade
> >
> > ------------------------------------------------------------------------------------------------------------------------------------------------------
> >
> > |        1  |       Arroz   |      01/01/2008 |      10,00    |
> > 02/02/2008  |      20,00    |    02/03/2008  |  25,00
> >
> >
> >
> > obrigado
> >
> >
> > 2008/2/6, Roberto Mello <[EMAIL PROTECTED]>:
> > >
> > > Rafael, eu gostaria que voce reformulasse sua pergunta. Nao entendi
> > > qual e' o seu objetivo e o motivo do mesmo.
> > >
> > > 2008/2/6 Rafael dos Santos Ferreira <[EMAIL PROTECTED]>:
> > > >
> > > >
> > > >         Eu preciso fazer uma junção destas  tabelas.
> > > >
> > > >  select *
> > > >  select * from tmensais where tmensais. tme_codpro = ??? limit 5)
> > > >  and
> > > > (select * from ientrada where ientrada. ien_codpro = ??? limit 10)
> > > >  and
> > > > (select * from prodpedido where prodpedido.ppe_coditem = ??? limit
> > > 10)
> > > > from  produto
> > >
> > > Por que? O que queres obter com a "juncao"? Nao estou vendo juncao
> > > nenhuma nisso aqui.
> > >
> > > -Roberto
> > > _______________________________________________
> > > pgbr-geral mailing list
> > > pgbr-geral@listas.postgresql.org.br
> > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> > >
> >
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> >
>
>
> --
> João Paulo
> www.dextra.com.br/postgres
> PostgreSQL
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to