[firebase-br] Unir 3 tabelas
Marcio Lima - Aquid
aquid em terra.com.br
Qua Jun 20 15:43:05 -03 2007
Nas tabelas CAIXA e CAIXA1 o campo CREDITO está NUMERIC(8,2) e na tabela
CHEQUE está NUMERIC(10,2). Experimenta colocar no select um cast para todos
ficarem iguais. Também o campo TIPO está diferente está CHARACTER SET
ISO8859_1 nas duas primeiras e na de CHEQUE não tem nada.
Márcio Lima dos Santos
marcio.l em cnp.com.br
CNP - Engenharia de Sistemas S/A
www.cnp.com.br
----- Original Message -----
From: "Dominio Informatica" <dominio em engeplus.com.br>
To: "Samuel Duarte Matos" <samuelmatos em cprinformatica.com.br>; "FireBase"
<lista em firebase.com.br>
Sent: Wednesday, June 20, 2007 2:14 PM
Subject: Re: [firebase-br] Unir 3 tabelas
Boa tarde,
o erro é o seguinte
Nome do Erro
Invalid token.Dynamic SQL Error.
SQL error code = -104.
Invalid command.
Data type unknown.
Transaction rolled back.
segue as tabelas ...
CREATE TABLE CAIXA (
CODIGO INTEGER NOT NULL,
DEBITO NUMERIC(10, 2),
TIPO VARCHAR(1) CHARACTER SET ISO8859_1,
PAGAMENTO VARCHAR(20) CHARACTER SET ISO8859_1,
NUMPEDIDO INTEGER,
DESPESA INTEGER,
SALARIO INTEGER,
DATAI VARCHAR(10) CHARACTER SET ISO8859_1,
DATAF VARCHAR(10) CHARACTER SET ISO8859_1,
SEQVOS INTEGER,
JUROSPAGO NUMERIC(8, 2),
JUROSCOBRADO NUMERIC(8, 2),
DATA DATE,
HISTORICO VARCHAR(100) CHARACTER SET ISO8859_1,
DESCONTO NUMERIC(8, 2),
TROCO NUMERIC(8, 2),
EMPRESA INTEGER,
CODEMPRESA INTEGER,
CAIXA INTEGER,
PARCELA INTEGER,
DATAVALE DATE,
CREDITO NUMERIC(8, 2),
LUCRO NUMERIC(8, 2)
);
CREATE TABLE CAIXA2 (
CODIGO INTEGER NOT NULL,
DEBITO NUMERIC(10, 2),
TIPO VARCHAR(1) CHARACTER SET ISO8859_1,
PAGAMENTO VARCHAR(20) CHARACTER SET ISO8859_1,
NUMPEDIDO INTEGER,
LUCRO VARCHAR(20) CHARACTER SET ISO8859_1,
DESPESA INTEGER,
SALARIO INTEGER,
DATAI VARCHAR(10) CHARACTER SET ISO8859_1,
DATAF VARCHAR(10) CHARACTER SET ISO8859_1,
SEQVOS INTEGER,
JUROSPAGO NUMERIC(8, 2),
JUROSCOBRADO NUMERIC(8, 2),
DATA DATE,
HISTORICO VARCHAR(100) CHARACTER SET ISO8859_1,
CREDITO NUMERIC(8, 2),
EMPRESA INTEGER,
CODEMPRESA INTEGER,
DATAVALE DATE
);
CREATE TABLE CHEQUE (
SEQUENCIAL INTEGER NOT NULL,
CODIGO INTEGER,
BANCO VARCHAR(30) CHARACTER SET ISO8859_1,
NUMCHEQUE VARCHAR(10) CHARACTER SET ISO8859_1,
DEBITO NUMERIC(10, 2),
VENCEU VARCHAR(1) CHARACTER SET ISO8859_1,
DESPESA INTEGER,
CREDITO NUMERIC(10, 2),
DATA DATE,
DATAVENCIMENTO DATE,
HISTORICO VARCHAR(100) CHARACTER SET ISO8859_1,
EMPRESA INTEGER,
CODEMPRESA INTEGER,
JUROSPAGO NUMERIC(8, 2),
SALARIO INTEGER,
DATAI VARCHAR(10) CHARACTER SET ISO8859_1,
DATAF VARCHAR(10) CHARACTER SET ISO8859_1,
TIPO VARCHAR(1)
);
Atenciosamente,
Rodrigo
----- Original Message -----
From: "Samuel Duarte Matos" <samuelmatos em cprinformatica.com.br>
To: <lista em firebase.com.br>
Sent: Wednesday, June 20, 2007 9:16 AM
Subject: Re: [firebase-br] Unir 3 tabelas
>O union com as 3 tabelas tem que funcionar.
>
> Que erro que dá? Qual a estrutura das tabelas? Para que possamos ajudar,
> precisamos do máximo de informações.
>
> Mas olhando seu problema, eu diria para dar uma olhada nos tipos dos
> campos das 3 tabelas. No union, todos os campos devem ser do mesmo tipo e
> tamanho (no caso de varchar).
>
> O problema pode ser com um campo data, tb. Numa tabela temos um campo
> Date, na outra Timestamp. Tb dá erro.
>
> T+
>
>
> "Dominio Informatica" <dominio em engeplus.com.br> escreveu na mensagem
> news:000601c7b326$e17f8b70$05fea8c0 em rodrigo...
> Bom dia a todos...
>
> Estou com o seguinte problema... eu preciso pegar informações de 3
> tabelas,
> Caixa,Caixa2,Cheque.
> Caixa e Caixa2 são exatamente iguais, Cheque contem as mesmas colunas das
> outras tabelas porém tem colunas adicionais.
> Se eu fizer um "union" das 3 tabelas retorna erro. Se eu fizer union das 2
> tabelas iguais de depois separadamente chamar a tabela cheque dae
> funciona,
> mas fica fora de ordem. Ex. Primeiro busca todas as informações das 2
> primeiras tabelas depois busca a da terceira. Os dados não se misturam.
> Tem
> outra forma de fazer isso sem ser desta forma?
>
> CREATE PROCEDURE RELCAIXA (
> DI DATE,
> DF DATE
> )
> RETURNS (
> DATA DATE,
> HISTORICO VARCHAR(100),
> DEBITO NUMERIC(8, 2),
> CREDITO NUMERIC(8, 2),
> TIPO VARCHAR(1)
> )
> AS
> BEGIN
> FOR
> SELECT DATA,HISTORICO,DEBITO,CREDITO,TIPO FROM CAIXA WHERE DATA BETWEEN
> :DI
> AND :DF AND TIPO!='R' AND TIPO!='A'
> UNION
> SELECT DATA,HISTORICO,DEBITO,CREDITO,TIPO FROM CAIXA2 WHERE DATA BETWEEN
> :DI
> AND :DF AND TIPO!='R' AND TIPO!='A'
> INTO :DATA,:HISTORICO,:DEBITO,:CREDITO,:TIPO
> DO
> SUSPEND;
>
> FOR
> SELECT DATA,HISTORICO,DEBITO,CREDITO,TIPO FROM CHEQUE WHERE DATA BETWEEN
> :DI
> AND :DF AND (DESPESA IS NOT NULL OR DESPESA!='')
> INTO :DATA,:HISTORICO,:DEBITO,:CREDITO,:TIPO
> DO
> SUSPEND;
>
> END
> ;
>
> Atenciosamente,
> Rodrigo
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
>
--------------------------------------------------------------------------------
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista