Oracle - Consultas Simples - Duas Tabelas

15/05/2010

0

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  
Marcio Santana

Marcio Santana

Responder

Posts

17/05/2010

Wilson Junior

Execute assim
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.
Responder

17/05/2010

Marcio Santana

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
Responder

17/05/2010

Wilson Junior

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.
Responder

17/05/2010

Marcio Santana

Isso mesmo...na verdade sao varias tabelas relacionadas... mais a ideia é isso memso...
Responder

17/05/2010

Wilson Junior

mas se4 você relacionar somente estas duas tabelas ela não te retorna corretamente?
Responder

17/05/2010

Marcio Santana

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...  
Responder

17/05/2010

Wilson Junior

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.

FROM
  HISTORICO
    LEFT OUTER JOIN LANCAMENTOS


Espero ter colaborado.
Responder

17/05/2010

Marcio Santana

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...    
Responder

17/05/2010

Wilson Junior

Utilize assim
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.
Responder

28/03/2022

Andre Patrocinio

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
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar