Pessoal tenho 30 tabelas que possuem a seguinte estrutura:

tabela_[a,b...n]
id, sinal

Preciso convertê-las numa outra tabela que conterá todas aquelas 30, cada
coluna sendo nomeada com o nome da própria tabela e recebendo o conteúdo da
coluna *sinal*

O problema é que o *id* não é comum em todas e neste caso a coluna *sinal*,
cuja tabela não tem o *id*, deve ficar com null.

Já fiz inúmeras tentativas e não obtive o resultado desejado, o máximo que
consegui chegar foi no resultado abaixo onde alguns IDs se repetem.

CREATE TABLE sm.sinal_all AS
(SELECT COALESCE(
     a0.id,
     a1.id,
     a2.id,
     a3.id,
     a4.id),
     a0.sinal as g,
     a1.sinal as r,
     a2.sinal as i,
     a3.sinal as z,
     a4.sinal as y
     FROM sm.svtableg as a0
        full outer join sm.svtabler as a1 ON a1.id = a0.id
        full outer join sm.svtablei as a2 ON a2.id = a1.id
        full outer join sm.svtablez as a3 ON a3.id = a2.id
        full outer join sm.svtabley as a4 ON a4.id = a3.id);

sinaldb=> SELECT * from sm.sinal_all where coalesce = 95058611;
 coalesce |    g    | r |   i    |    z    |    y
----------+---------+---+--------+---------+---------
 95058611 | 5.39109 |   |        |         |
 95058611 |         |   | 4.5241 | 4.58636 | 3.76332
(2 rows)

Desde já obrigado.

--
Att.
Carlos Adean
skype: carlosadean | fb.com/carlosadean

"There are only 10 types of people in the world: Those who understand
binary, and those who don't."
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a