Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JM3

Union

Recommended Posts

Estou precisando fazer um select utilizando o union da seguinte forma no PostgreSQL:

select orcamento, documentno as fatura1, grandtotal as valor1, NULL as fatura2, 0 as valor2, c_bpartner_id, duedate 
from z_rv_faturaspendentes f
where ad_org_id = 3000000 and z_origem_ref_id = 3002315
group by orcamento, documentno, grandtotal, c_bpartner_id, duedate
union
select orcamento, NULL as fatura1, 0 as valor1, documentno as fatura2, grandtotal as valor2, c_bpartner_id, duedate 
from z_rv_faturaspendentes f
where ad_org_id = 3000001 and z_origem_ref_id = 3002315
group by orcamento, documentno, grandtotal, c_bpartner_id, duedate

 

Eu preciso que o resultado traga somente uma linha, mas ele duplica o mesmo alguém saberia me dizer o que eu estou fazendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duplica ou são dois resultdos diferentes ?

 

Rodou cada query separadamente ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola,

 

Quando você diz que

Eu preciso que o resultado traga somente uma linha, mas ele duplica o mesmo
ele realmente duplica todas as colunas:

orcamento, fatura1, valor1, fatura2, valor2, c_bpartner_id, duedate 

 

Todas as colunas tem o mesmo resultado nesse Union ? teoricamente, quando você executa um union ele não deveria exibir registros duplicados não, se uma dessas colunas tiver um valor diferente, dai ele mostra sim... confira isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O resultado vem dessa forma:

"21236 - R1";"100703";791.55;"";0;3000501;"2011-06-06"
"21236 - R1";"";0;"100705";753.86;3000501;"2011-06-06"

 

Eu pensei que os campos de mesmo tipo e vazios iriam se juntar formando uma linha unica, pois os dois selects trazem resultados próximos de documentos diferentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só se juntam se os dois results forem iguais, para se evitar isto se usa o UNION ALL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.