JM3 0 Denunciar post Postado Maio 31, 2011 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
Motta 645 Denunciar post Postado Maio 31, 2011 Duplica ou são dois resultdos diferentes ? Rodou cada query separadamente ? Compartilhar este post Link para o post Compartilhar em outros sites
ChuckyBrazil 0 Denunciar post Postado Maio 31, 2011 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
JM3 0 Denunciar post Postado Maio 31, 2011 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
Motta 645 Denunciar post Postado Maio 31, 2011 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
ChuckyBrazil 0 Denunciar post Postado Maio 31, 2011 Agora ta entendido... Faça como o Motta disse, use UNION ALL http://www.w3schools.com/sql/sql_union.asp Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Maio 31, 2011 Agora ta entendido... Faça como o Motta disse, use UNION ALL http://www.w3schools.com/sql/sql_union.asp Não, pelo contrário ele quer registros únicos. Só que neste caso não existe erros os registros são distintos mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
JM3 0 Denunciar post Postado Junho 1, 2011 Obrigado pela ajuda, pensei que seria possível obter apenas uma linha de resultado... Compartilhar este post Link para o post Compartilhar em outros sites