[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