> 2016-02-18 17:32 GMT-02:00 André Ormenese <[email protected]>:
>
>> 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 <
[email protected]> 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.
>>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral