ajuda com SELECT de produtos

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
rafasnn
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qui, 26 Fev 2009 4:00 pm
Localização: São Paulo - SP

Pessoal,

preciso de uma ajuda com um select que preciso implementar, ao pesquisar um pedido, o select buscaria pelo item do pedido os produtos que não possuem cadastro na arvore de produtos

Selecionar tudo

tbpedidos  tbitempedidos     tbprodutos     tbarvoreprodutos
-----------  ----------------     ------------     --------------------
pk_pedido    fk_produto       pk_produto   fk_produto
                   fk_pedido                            fk_produtofilho
                   pk_itempedido
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Se a tabela de Itens de Pedido de fato contém uma FK para Produto, jamais ocorrerá de um item ser de um produto não existente na tabela de Produto.

Se não estiver implementada corretamente, crie ou habilite a FK caso ela esteja desabilitada.
diego_amoroso
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Qua, 07 Jul 2010 2:53 pm
Localização: Americana - SP
Diego Amoroso
Programador pl/sql
diego.amoroso@yahoo.com.br

Bom dia brother,

Não testei aqui no meu sistema, mas pelo que entendi que você quer
ficaria assim, tenta ai:

Selecionar tudo

select i.produto
 from tbpedidos       p,
         tbitempedidos i
where p.pedido = i.pedido
   and itempedido = ???
   and i.produto in (select produto
                              from tbprodutos
                            where produto not in (select produto
                                                              from tbarvoreprodutos)); 
Usei nome de campos que imagino que sejam, e no caso a pesquisa seria pelo item pedido, substitui aii e tenta rodar o select.
Qualquer coisa, avisa aee, falou!!!
rafasnn
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 26
Registrado em: Qui, 26 Fev 2009 4:00 pm
Localização: São Paulo - SP

Diego,

grato pelo retorno, deu certo mas precisava que fosse pelo número do pedido, tenho pedido com 30 itens e as vezes até mais, o resultado esperado seria retornar apenas os itens que não tem arvore, existe alguma forma?
diego_amoroso
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Qua, 07 Jul 2010 2:53 pm
Localização: Americana - SP
Diego Amoroso
Programador pl/sql
diego.amoroso@yahoo.com.br

Nesse caso muda o 'itempedido' do select para pedido, e pesquisa pelo número do pedido. Dessa maneira:

Selecionar tudo

select i.produto
 from tbpedidos       p,
         tbitempedidos i
where p.pedido = i.pedido
   and p.pedido = ???
   and i.produto in (select produto
                              from tbprodutos
                            where produto not in (select produto
                                                              from tbarvoreprodutos));
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes