[firebase-br] Unir 3 tabelas
Samuel Duarte Matos
samuelmatos em cprinformatica.com.br
Qua Jun 20 09:16:30 -03 2007
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
Mais detalhes sobre a lista de discussão lista