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 ?
_______________________________________________
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