Jump to content

Foto

Comando Inner Join



Existem 7 respostas neste tópico

#1 Portuga2112    

Portuga2112
  • Participante
  • 4 mensagens

Publicado 12 November 2011 - 12:02 AM

Boa Noite.

Alguém poderia me ajudar com esses 3 exercicios onde tenho que utilizar o comando Inner Join??

Segue um exemplo:

Ver os pedidos de cada cliente: SELECT Cliente.nome,Pedido.cod_cliente,pedido.num_pedido FROM Cliente INNER JOIN Pedido ON Cliente.Cod_cliente = Pedido.Cod_cliente
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Mostre os cliente (ordenados) que têm prazo de entrega maior que 15 dias para o produto "ARROZ" e sejam do Rio de Janeiro.

Mostre todos os vendedores que venderam chocolate em quantidade superior a 5 Kg.

Quantos clientes da cidade do Rio de Janeiro e de Niterói tiveram seus pedidos tirados pelo vendedor "PAULO" fez no mês de janeiro.

A tabela no caso é essa:

CLIENTE: Cod_cliente,Nome,Endereco
PEDIDO: Num_Pedido,Prazo_Entrega Cod_Cliente, Cod_Vendedor,Data
ITEMPEDIDO: num_pedido,Cod_produto,Quantidade
PRODUTO: Cod_produto,Descrição,Unidade,ValUnidade.
VENDEDOR: Cod_Vendedor,Nome, Comissao,Salario



Se alguém conseguir me ajudar eu ficaria muito agradecido

Luiz


#2 nickosoft    

nickosoft

    Hardware Expert

  • Colaborador
  • 3804 mensagens

Publicado 12 November 2011 - 04:38 AM

onde esta a duvida? ou nao fez nada e quer pronto?(assim nao aprende)
essas tabelas dados pro exemplo tem os dados?

vc entende a definicao do q é um INNER JOIN?
a primeira é um INNER JOIN simples entre 2 tabelas
essa segunda e terceira ja envolve 3 tabelas
VB.Net & C#

#3 Portuga2112    

Portuga2112
  • Participante
  • 4 mensagens

Publicado 12 November 2011 - 09:40 AM

É uma lista de exercicios que o professor passou para estudo de prova, esses foram os unicos exercicios que não consegui fazer no SQL Manager.

#4 nickosoft    

nickosoft

    Hardware Expert

  • Colaborador
  • 3804 mensagens

Publicado 12 November 2011 - 01:27 PM

é pq se vc sabe o cenceito do comando, é super simples de entender....

O INNER JOIN retornam registros quando há pelo menos uma combinacao em ambas as tabelas

vou por um inner join explicado e vc da seus pulos

strSQL = "SELECT L.log_tipo_logradouro, L.descricaonaoabreviada, L.uf, C.descricao_b, B.descricao "
strSQL = strSQL & "FROM "
strSQL = strSQL & "((tbllogradouros L "
strSQL = strSQL & "INNER JOIN tblcidades C ON L.codigocidade = C.codigo) "
strSQL = strSQL & "INNER JOIN tblbairros B ON B.codigo = L.codigobairro) "
strSQL = strSQL & "WHERE L.cep like '" & mskCep.Text.Replace("-", "") & "'"

mostrar na tela log_tipo_logradouro, descricaonaoabreviada, uf, descricao_b e descricao
da tabela tbllogradouros q vira abreviacao L, a combinacao com a tabela tblcidades q vira abreviacao C, a combinacao entre l-codigocidade com c-codigo, q vai entrar uma combinacao tblbairros virando B, b-codigo com l-codigobairro, isso tudo qnd l-cep valer a entrada nessa mascara mskcep, onde ainda substitui o - da mascara por nada, afinal na tabela o cep é direto 00000000 e na mascara mostra direitinho pro cliente 00000-000
VB.Net & C#

#5 Portuga2112    

Portuga2112
  • Participante
  • 4 mensagens

Publicado 14 November 2011 - 09:47 PM

Então no caso do primeiro exercicio que eu coloquei ficaria assim?

SELECT cliente.nome FROM cliente INNER JOIN pedido
ON cliente.cod_cliente=pedido.cod_cliente
INNER JOIN itempedido ON pedido.num_pedido = itempedido.num_pedido
INNER JOIN produto ON itempedido.cod_produto= produto.cod_produto
WHERE pedido.prazo_entrega > 15 AND produto.descricao="ARROZ" AND cliente.endereco = "Rio de Janeiro"
ORDER BY cliente.nome

#6 nickosoft    

nickosoft

    Hardware Expert

  • Colaborador
  • 3804 mensagens

Publicado 15 November 2011 - 05:24 AM

ao meu ver seria isso sim...nao sei se o order by foi ensinado a vcs, pra usar o asc e desc apos o campo.....
bom mesmo com o banco de dados populado pra testar....
se nao tem, crie um e coloque algumas informacoes pra testar, pouca coisa mesmo so pra teste, e nas informacoes q colocar, preencha umas q atendam aos criterios e outras q certamente nao atendem, justamente pra ver a filtragem se ocorre como quer, até mesmo o order by.....é a melhor forma de verificar...
VB.Net & C#

#7 Portuga2112    

Portuga2112
  • Participante
  • 4 mensagens

Publicado 15 November 2011 - 07:23 PM

Valeu pela ajuda!!

#8 nickosoft    

nickosoft

    Hardware Expert

  • Colaborador
  • 3804 mensagens

Publicado 15 November 2011 - 08:46 PM

a gente tenta....lembro q a primeira vez q tive q usar um infeliz de um inner join apanhei muito, pq na entendia, e nao achei ninguem pra dar uma luz, tentar explicar alguma coisa....
ainda q eu ache q nao sei explicar nada, me enrolo no meio....
VB.Net & C#