CONSULTA SQL EM TABELAS RELACIONADAS

VINICIUSVB 24/11/2010 13:31:29
#358113
Olá pessoal!

Gotaria de uma ajuda por gentileza. Tenho duas tabelas no banco de dados (TBMovimentacaoProduto, TBDetalhesMovimentacao). Quero criar uma consulta SQL que busque os dados na TBMovimentacaoProduto e carrega um grid com os detalhes desta movimentacao que seria na TBDetalhesMovimentacao. O relacionameno entre as tabelas já está feita. Meu problema é com a instrução SQL, exemplo:

Movimentacao 1: listado no drig todos os detalhes da movimentacao 1

Se alguem puder me ajudar ou até indicar um projeto de exemplo eu agradeço muito.
RODRIGOFERRO 24/11/2010 15:46:49
#358129
ok poderia postar a estrutura das duas tabelas, o que voce usa para se conectar e o componente que voce ira listar os dados... ?

Abraços
VINICIUSVB 24/11/2010 17:30:13
#358147
A estrutura das tabelas é a seguinte:

TBMovimentacao (CODIGO, TIPO_MOVIMENTACAO,DATA_ENTRADA, DATA_INCLUSAO, HORA_INCLUSAO, USUARIO)
TBDetalhesMovimentacao (CODIGO_MOVIMENTACAO, ALMOXARIFADO, CODIGO_PRODUTO, NOME_PRODUTO, QTDE)

TBMovimentacao(CODIGO) é chave primária relacionada com a seguda tabela (CODIGO_MOVIMENTACAO)

Ao selecionar a movimentação número x os campos da TBMovimentacao aparecerao nos textbox do form, e os campos da TBDetalhesMovimentacao aparecerano em um datagrid. Isso é como se fosse uma consulta de um pedido e os detalhes do pedido.

Obrigado
GREGO 24/11/2010 17:38:48
#358150
é relação é 1 para 1 ou 1 para n?
LUIZCOMINO 24/11/2010 17:55:23
#358153
Resposta escolhida
[Ô]SELECT b.DATA_ENTRADA, b.DATA_INCLUSAO,b. HORA_INCLUSAO, b.USUARIO [Ô]& _
[Ô]FROM TBMovimentacao a,TBDetalhesMovimentacao b [Ô] & _
[Ô]WHERE a.CODIGO=b.CODIGO_MOVIMENTACAO[Ô]



VINICIUSVB 24/11/2010 18:00:45
#358155
Relacao 1 para 1

LUIZCOMINO esta consulta é para listar todos os registros? Eu quero para listar um determinado registro. Quero consultar o codigo 0001 por exemplo, e ele listar os detalhes deste codigo. Ao consultar a movimentacao 0001 listar no grid os detalhes.
LUIZCOMINO 24/11/2010 19:16:10
#358162
Então coloque um AND assim:

[Ô]SELECT b.DATA_ENTRADA, b.DATA_INCLUSAO,b. HORA_INCLUSAO, b.USUARIO [Ô]& _
[Ô]FROM TBMovimentacao a,TBDetalhesMovimentacao b [Ô] & _
[Ô]WHERE a.CODIGO=b.CODIGO_MOVIMENTACAO AND a.CODIGO= [ô] [Ô] & text1.text &[Ô] [ô] [Ô]

esse text1.text é para filtrar somente o codigo que esta digitado nele, ex:
text1=[Ô]12[Ô], ele ira filtrar o codigo 12

para exibir nos texts o resultado é só vc coloar txt_codigo = rs!CODIGO , o rs é seu recordset.
abraço!

Sempre em frente!
RODRIGOFERRO 24/11/2010 19:34:05
#358163
que banco tu usa? Access ?

segue a consulta SQL


SELECT CODIGO, CODIGO_MOVIMENTACAO, ALMOXARIFADO, CODIGO_PRODUTO, NOME_PRODUTO, QTDE
FROM TBDetalhesMovimentacao INNER JOIN TBMovimentacaoProduto ON TBDetalhesMovimentacao.CODIGO_MOVIMENTACAO = TBMovimentacaoProduto.CODIGO
WHERE (((CODIGO)=1));
VINICIUSVB 24/11/2010 22:25:15
#358176
LUIZCOMINO vou tentar o seu codigo. Eu já estava tentando fazer dessa forma mas nao estava dando certo porque nao estava colocando a instrucao do AND para frente. De qualquer forma muito obrigado a todos e se nao consegui eu posto as duvidas novamente.
VINICIUSVB 24/11/2010 22:33:58
#358177
Zerocal estou usado SQL Server
Tópico encerrado , respostas não são mais permitidas