Em 18/02/16, André Ormenese<aormen...@gmail.com> escreveu:
> 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 ?
>

Me parece que você deveria utilizar LEFT OUTER JOIN.

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a