brunorod 0 Denunciar post Postado Novembro 13, 2011 Prezado estou com uma consulta que precisar inverter 2 campos veja: SELECT D.id, D.conta AS conta_1, D.contrapartida AS conta_2, P.classificacao, P.conta as nome_conta FROM fin_livro_diario AS D LEFT OUTER JOIN fin_plano_de_contas AS P ON D.conta = P.classificacao GROUP BY P.classificacao UNION SELECT D.id, D.conta AS conta_2, D.contrapartida AS conta_1, P.classificacao, P.conta as nome_conta FROM fin_livro_diario AS D LEFT OUTER JOIN fin_plano_de_contas AS P ON D.contrapartida = P.classificacao GROUP BY P.classificacao ORDER BY classificacao ASC Os campos em verde funciona beleza, eles ficam classificados invertidos, mas na hora de exibir os campos em vermelho ele não mostra invertido: id conta_1 conta_2 historico tipo valor saldo_conta saldo_contra classificacao nome_conta 1 1.1.01.01.0001 2.4.02.04.0004 Implantação Saldo no Sistema d 10000 10000 10000 1.1.01.01.0001 Caixa Geral 1 1.1.01.01.0001 2.4.02.04.0004 Implantação Saldo no Sistema d 10000 10000 10000 2.4.02.04.0004 Ajustes Devedores Exercícios Anteriores Alguem tem idéia o que está acontecendo? Obrigado... Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 13, 2011 Não entendi, se quer classificar invertido (ordem descendente) na exibição ? Use ... ORDER BY classificacao DESC Compartilhar este post Link para o post Compartilhar em outros sites
brunorod 0 Denunciar post Postado Novembro 14, 2011 Vou tentar ser mais claro. Estou dando apelido a 2 campos. Na primeira consulta D.conta = conta_1 e tbm na primeira cosulta D.contrapartida = conta_2 Na segunda consulta D.conta = conta_2 e tbm na segunda cosulta D.contrapartida = conta_1 Quando termina a consulta ele não inverte os alias entendeu? A primeira linha sai conta_1 = D.conta e a segunda linha sai conta_1 = D.conta tbm onde teria que ser a D.contrapartida já que na segunda consulta invertir o alias. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 14, 2011 Não vai fazer, a ordem deve ser seguida. SELECT D.id, D.conta AS conta_1, D.contrapartida AS conta_2, P.classificacao, P.conta as nome_conta FROM fin_livro_diario AS D LEFT OUTER JOIN fin_plano_de_contas AS P ON D.conta = P.classificacao GROUP BY P.classificacao UNION SELECT D.id, D.contrapartida AS conta_1, D.conta AS conta_2, P.classificacao, P.conta as nome_conta FROM fin_livro_diario AS D LEFT OUTER JOIN fin_plano_de_contas AS P ON D.contrapartida = P.classificacao GROUP BY P.classificacao ORDER BY classificacao ASC Compartilhar este post Link para o post Compartilhar em outros sites
brunorod 0 Denunciar post Postado Novembro 14, 2011 Você conhece alguma outra forma de fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 14, 2011 Não, com o union a ordem das colunas, seus tipos devem ser respeitados. Compartilhar este post Link para o post Compartilhar em outros sites
brunorod 0 Denunciar post Postado Novembro 14, 2011 Ok, obrigado pela ajuda, vou tentar criar outro campo na tabela com Group Compartilhar este post Link para o post Compartilhar em outros sites