Em 19 de fevereiro de 2016 09:14, André Ormenese <aormen...@gmail.com> escreveu:
> > > > >> 2016-02-18 17:32 GMT-02:00 André Ormenese <aormen...@gmail.com>: >> >>> Boa tarde pessoal. >>> >>> Vou dar um exemplo de consulta em cross-tab que gostaria de fazer, e >>> vejam se é possível. >>> >>> Tenho duas tabelas, uma com código e descrição de produtos do sangue, e >>> outra que armazena os dados de resultados de bolsas de sangue fracionada. >>> >>> Uma bolsa fracionada pode gerar um ou mais produtos. >>> >>> A tabela1 tem os dados : >>> (código, descrição) >>> 1 - Hemacia >>> 2 - Plaqueta >>> 3 - Plasma >>> >>> A tabela2 o fracionamento de cada bolsa de sangue : >>> (bolsa, produto, qtdade) >>> b1 1 100 >>> b1 2 135 >>> b1 3 150 >>> b2 1 200 >>> b2 3 167 >>> >>> Queria fazer uma consulta que me mostrasse os produtos na coluna correta >>> do cross-tab, assim : >>> >>> Bolsa Hemacia Plaqueta Plasma >>> b1 100 135 150 >>> b2 200 167 >>> >>> Só consigo este resultado : >>> Bolsa Hemacia Plaqueta Plasma >>> b1 100 135 150 >>> b2 200 167 >>> >>> >>> Estou executando : >>> >>> Select * from crosstab ( >>> 'select bolsa,produto,qtdade from fraciona >>> inner join tproduto on tproduto.codigo = fraciona.produto >>> order by bolsa') as resultado("Bolsa","Hemacia","Plaqueta","Plasma"); >>> >>> A solução é fazer que a consulta interna do cross-tab gere uma linha >>> assim : >>> b2 2 null >>> >>> Já tentei com right join mas não funcionou. >>> >>> Alguma ideia ? >>> >>> >>> > Em 18 de fevereiro de 2016 22:10, Matheus Ricardo Espanhol < > matheusespan...@gmail.com> escreveu: > >> André, >> >> Faltou especificar a ordenação no segundo parâmetro do crosstab e >> especificar descrição no lugar do produto: >> >> Select * from crosstab ( >> $$select bolsa,*descricao*,qtdade >> from fraciona >> inner join tproduto on >> tproduto.codigo = fraciona.produto >> order by bolsa >> $$, >> * $$SELECT >> unnest(ARRAY['Hemacia','Plaqueta','Plasma'])$$* >> ) as resultado ("Bolsa" text,"Hemacia" >> int,"Plaqueta" int,"Plasma" int); >> >> Att. >> > > Matheus, > > na verdade meu exemplo é mais complexo e esta segunda parte eu monto > dinamicamente. > > Preciso mesmo é uma solução para a primeira parte do crosstab. > > Valeu a dica. > > >>> Matheus, me desculpe, é isso mesmo.... Agora que eu vi que estava faltando o segundo parâmetro do crosstab !!! Obrigado.
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral