Ir para conteúdo

POWERED BY:

Arquivado

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

brunorod

Consulta SQL invertendo alias dos campos não funciona!

Recommended Posts

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

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

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

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

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

×

Informação importante

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