Oracle - Consultas Simples - Duas Tabelas
Boa noite pessoal
Preciso mais uma vez da ajuda de vcs...
eu possuo duas tabelas... uma tem dois campos...
codigo descricao
1 Ativo
12 Caixa
123 Banco
1234 Diversos
12345 Outros na outra tabela tenho o campo codigo e valor.
codigo e valor
123 R$ 345,77
12345 R$ 60.00 Eu queria que ficasse asssim:
codigo descricao valor
1 Ativo
12 Caixa
123 Banco R$ 345,77
1234 Diversos
12345 Outros R$ 60,00 Ou seja, queria concatenar as duas tabelas, as que tivessem o campo codigo correspondente puxava o valor na frente o que nao tivesse exibiria o valor da primeira tabela como faco isso?
Obrigado Marcio
eu possuo duas tabelas... uma tem dois campos...
codigo descricao
1 Ativo
12 Caixa
123 Banco
1234 Diversos
12345 Outros na outra tabela tenho o campo codigo e valor.
codigo e valor
123 R$ 345,77
12345 R$ 60.00 Eu queria que ficasse asssim:
codigo descricao valor
1 Ativo
12 Caixa
123 Banco R$ 345,77
1234 Diversos
12345 Outros R$ 60,00 Ou seja, queria concatenar as duas tabelas, as que tivessem o campo codigo correspondente puxava o valor na frente o que nao tivesse exibiria o valor da primeira tabela como faco isso?
Obrigado Marcio
Marcio Santana
Curtidas 0
Respostas
Wilson Junior
15/05/2010
Execute assim
e execute assim para ver a diferença entre OUTER e INNER
Espero ter colaborado.
SELECT tab1.Codigo, tab1.Descricao, tab2.Valor FROM TABELA_1 tab1 LEFT OUTER JOIN TABELA_2 tab2 ON (tab2.Codigo = tab1.Codigo) ORDER BY tab1.Codigo
e execute assim para ver a diferença entre OUTER e INNER
SELECT tab1.Codigo, tab1.Descricao, tab2.Valor FROM TABELA_1 tab1 INNER JOIN TABELA_2 tab2 ON (tab2.Codigo = tab1.Codigo) ORDER BY tab1.Codigo
Espero ter colaborado.
GOSTEI 0
Marcio Santana
15/05/2010
Amigao, ele nao puxou nao... nao trouxe assim
1
12
123 descricao... e valor
ele só ta puxando.... o que tem nas duas tabelas...
tipo sí o 123... etc
mesmo com o left outer join
valeu
GOSTEI 0
Wilson Junior
15/05/2010
Tabela_1
codigo descricao
1 Ativo
12 Caixa
123 Banco
1234 Diversos
12345 Outros
Tabela_2
codigo e valor
123 R$ 345,77
12345 R$ 60.00
Só me confirma se você fez assim.
codigo descricao
1 Ativo
12 Caixa
123 Banco
1234 Diversos
12345 Outros
Tabela_2
codigo e valor
123 R$ 345,77
12345 R$ 60.00
Só me confirma se você fez assim.
GOSTEI 0
Marcio Santana
15/05/2010
Isso mesmo...na verdade sao varias tabelas relacionadas... mais a ideia é isso memso...
GOSTEI 0
Wilson Junior
15/05/2010
mas se4 você relacionar somente estas duas tabelas ela não te retorna corretamente?
GOSTEI 0
Marcio Santana
15/05/2010
enao, seria esse realcionamento:
From Clanca L Join Cconta C
On L.Codcoligada = C.Codcoligada
And L.Credito = C.Codconta
Or L.Debito = C.Codconta
left outer Join Ccontahistorico H
On H.Codcoligada = C.Codcoligada
and H.CodConta = C.CodConta
Join Csdant S
On S.Codcoligada = C.Codcoligada
And S.Codconta = C.Codconta
Where Substr(C.Codconta,1,1) = '1'
And To_Char(L.Data,'yy') = &ano
GROUP BY H.CodConta, H.Descricao
order by H.Codconta seria a tabela que está em destaque.... Ele tras da mesma forma, se eu usar join (somente) left outer join tras da mesma forma, ou seja, so tras as que tem o codigo nas duas tabelas...
On L.Codcoligada = C.Codcoligada
And L.Credito = C.Codconta
Or L.Debito = C.Codconta
left outer Join Ccontahistorico H
On H.Codcoligada = C.Codcoligada
and H.CodConta = C.CodConta
Join Csdant S
On S.Codcoligada = C.Codcoligada
And S.Codconta = C.Codconta
Where Substr(C.Codconta,1,1) = '1'
And To_Char(L.Data,'yy') = &ano
GROUP BY H.CodConta, H.Descricao
order by H.Codconta seria a tabela que está em destaque.... Ele tras da mesma forma, se eu usar join (somente) left outer join tras da mesma forma, ou seja, so tras as que tem o codigo nas duas tabelas...
GOSTEI 0
Wilson Junior
15/05/2010
Ele não está trazendo porque você está colocando como tabela principal a sua TABELA_2, neste caso, os seus lançamentos com valores, ou seja, você está falando para retornar os históricos dos lançamentos e não os lançamentos dos históricos, para fazer isto, a sua tabela principal deverá ser a tabela de históricos e não de lançamentos.
Espero ter colaborado.
FROM HISTORICO LEFT OUTER JOIN LANCAMENTOS
Espero ter colaborado.
GOSTEI 0
Marcio Santana
15/05/2010
entao, nao deu certo... fiz as alteracoes...
From Cconta C left outer join cLanca L
On L.Codcoligada = C.Codcoligada
And L.Credito = C.Codconta
Or L.Debito = C.Codconta
Join Ccontahistorico H
On H.Codcoligada = C.Codcoligada
And H.Codconta = C.Codconta
Join Csdant S
On S.Codcoligada = C.Codcoligada
And S.Codconta = C.Codconta
Where Substr(C.Codconta,1,1) = '1'
And To_Char(L.Data,'yy') = &ano
GROUP BY H.CodConta, H.Descricao
order by H.Codconta clanca é minha tabela de lancamentos.... nao deu certto nao...
On L.Codcoligada = C.Codcoligada
And L.Credito = C.Codconta
Or L.Debito = C.Codconta
Join Ccontahistorico H
On H.Codcoligada = C.Codcoligada
And H.Codconta = C.Codconta
Join Csdant S
On S.Codcoligada = C.Codcoligada
And S.Codconta = C.Codconta
Where Substr(C.Codconta,1,1) = '1'
And To_Char(L.Data,'yy') = &ano
GROUP BY H.CodConta, H.Descricao
order by H.Codconta clanca é minha tabela de lancamentos.... nao deu certto nao...
GOSTEI 0
Wilson Junior
15/05/2010
Utilize assim
Espero ter colaborado.
FROM Ccontahistorico H LEFT OUTER JOIN Cconta C ON ( C.Codcoligada = H.Codcoligada AND C.Codconta = H.Codconta ) INNER JOIN cLanca L ON ( L.Codcoligada = C.Codcoligada AND (L.Credito = C.Codconta OR L.Debito = C.Codconta) ) INNER JOIN Csdant S ON ( S.Codcoligada = C.Codcoligada AND S.Codconta = C.Codconta )
Espero ter colaborado.
GOSTEI 0
Andre Patrocinio
15/05/2010
no SQLServer mostra duas tabelas ao mesmo tempo se fizer 2 select um abaixo do outro. Como faço isso no ORACLE?
select * from tblprodutos
select * from tblncm
select * from tblprodutos
select * from tblncm
GOSTEI 0