SQL

Delphi

27/12/2008

Bom pessoal estou tentar separar os créditos, débitos e saldo da minha tabela de caixa, mas esta dando erro quando executo o sql, o erro é o seguinte:

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
VALOR_MOV.
At line 1, column 8.

A minha tabela de caixa é a seguinte:

CAIXA_ID INTEGER NOT NULL, DT_MOV DATE, DATA_INC DATE, DATA_ALT DATE, HISTORICO VARCHAR(50) COLLATE PT_BR, OPERACAO CHAR(1) COLLATE PT_BR, BANCO_ID INTEGER, VALOR_MOV DM_VALOR /* DM_VALOR = NUMERIC(15,2) */, FGPTO_ID INTEGER, SALDO_ATUAL NUMERIC(15,2), CEDULA NUMERIC(15,2), MOEDAS NUMERIC(15,2), USU_ID DM_FK /* DM_FK = INTEGER */, EMPRESA_ID DM_PK /* DM_PK = INTEGER NOT NULL */, CEN_ID DM_FK /* DM_FK = INTEGER */


A instrução SQL que estou usando é a seguinte:

SELECT VALOR_MOV, OPERACAO FROM( SELECT VALOR_MOV AS CREDITO, 0 AS DEBITO, OPERACAO FROM caixa WHERE OPERACAO = ´C´ UNION ALL SELECT 0 AS CREDITO, VALOR_MOV AS DEBITO, OPERACAO FROM caixa WHERE OPERACAO = ´D´ ) GROUP BY VALOR_MOV, OPERACAO


Onde estou errando?


Setmaster2009

Setmaster2009

Curtidas 0

Respostas

Webjoel

Webjoel

27/12/2008

Olá!

É que no seu union all você está colocando um alias para o seu valor_mov, e com isso o seu primeiro select (primeira linha) se quebra. Segue abaixo a correção:

SELECT CREDITO, DEBITO, OPERACAO

FROM(

SELECT VALOR_MOV AS CREDITO, 0 AS DEBITO, OPERACAO
FROM caixa
WHERE OPERACAO = ´C´

UNION ALL

SELECT 0 AS CREDITO, VALOR_MOV AS DEBITO, OPERACAO
FROM caixa
WHERE OPERACAO = ´D´ )

GROUP BY CREDITO, DEBITO , OPERACAO



GOSTEI 0
POSTAR