Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Estou tentando construir um SQL usando UNION com dados da mesma tabela. Nesta tabela eu tenho registros com o campo TipoMov='C' (crédito), e, TipoMov='D' (débito).
Eu pretendia mostrar numa coluna os créditos e na outra os débitos, uma espécie de livro caixa, o código ficou mais ou menos assim:
(
SELECT tbl_mov_financeiros.IDMovFinanceiro, tbl_mov_financeiros.Titulo, tbl_mov_financeiros.Vencimento, tbl_mov_financeiros.ValorTitulo AS CRD, 0 AS DBT
FROM tbl_mov_financeiros
WHERE tbl_mov_financeiros.Pagamento IS NOT NULL
AND tbl_mov_financeiros.TipoMov = 'C'
)
UNION ALL (
SELECT tbl_mov_financeiros.IDMovFinanceiro, tbl_mov_financeiros.Titulo, tbl_mov_financeiros.Vencimento, 0, tbl_mov_financeiros.ValorTitulo
FROM tbl_mov_financeiros
WHERE tbl_mov_financeiros.Pagamento IS NOT NULL
AND tbl_mov_financeiros.TipoMov = 'D'
)
ORDER BY tbl_mov_financeiros.Pagamento
O problema é que está me retornando o erro:
#1250 - Table 'tbl_mov_financeiros' from one of the SELECTs cannot be used in global ORDER clause
Alguém pode me ajudar?
Olá,
Eu acabei descobrindo onde estava errando.
Estava usando a coluna "Pagamento" na cláusula ORDER BY sem tê-la utilizado no SELECT, foi só substituir no SELECT a coluna "Vencimento" por "Pagamento".
Caso resolvido.
Remova os parenteses e faça o teste, sem tirar nem por mais nenhuma linha.