Logo Passei Direto
Buscar

Bases de Dados

Uniasselvi
Uma empresa de comércio eletrônico opera um sistema de gerenciamento de pedidos, no qual os produtos, pedidos e seus itens são armazenados em tabelas relacionadas no banco de dados. Essa arquitetura de dados permite rastrear o histórico de vendas, controlar o estoque e atender de forma eficiente aos pedidos dos clientes. Nesse contexto, surge uma necessidade comum de identificar os produtos que já foram vendidos, mas atualmente não possuem estoque disponível. Essa informação é relevante para a equipe de vendas planejar a reposição desses itens e garantir a satisfação dos clientes. Uma consulta SQL bem estruturada pode fornecer essa visão geral do portfólio de produtos.Sabendo da importância da linguagem SQL, considere as seguintes tabelas do sistema de gerenciamento de pedidos da empresa:Tabela "Produtos":id_produto (INT, Primary Key)nome (VARCHAR)descricao (VARCHAR)preco (DECIMAL)quantidade_estoque (INT)Tabela "Pedidos":id_pedido (INT, Primary Key)id_cliente (INT)data_pedido (DATE)status_pedido (VARCHAR)Tabela "ItensPedido":id_pedido (INT, Foreign Key referenciando Pedidos.id_pedido)id_produto (INT, Foreign Key referenciando Produtos.id_produto)quantidade (INT)Com base nas estruturas das tabelas apresentadas, indique, nas alternativas a seguir, aquela que apresenta o comando SQL correto para obter a lista de todos os produtos que já foram vendidos, porém, atualmente, não possuem estoque disponível (quantidade_estoque = 0)? A) SELECT Produtos.* FROM Produtos p INNER JOIN ( SELECT id_produto FROM ItensPedido GROUP BY id_produto HAVING SUM(quantidade) > 0 ) ip ON p.id_produto = ip.id_produto WHERE p.quantidade_estoque = 0;B) SELECT Produtos.* FROM Produtos WHERE Produtos.quantidade_estoque = 0 AND Produtos.id_produto IN ( SELECT id_produto FROM ItensPedido );C) SELECT Produtos.* FROM Produtos INNER JOIN ItensPedido ON Produtos.id_produto = ItensPedido.id_produto WHERE Produtos.quantidade_estoque = 0;D) SELECT Produtos.* FROM Produtos WHERE Produtos.quantidade_estoque = 0 AND EXISTS ( SELECT 1 FROM ItensPedido WHERE ItensPedido.id_produto = Produtos.id_produto );E) SELECT Produtos.* FROM Produtos LEFT JOIN ItensPedido ON Produtos.id_produto = ItensPedido.id_produto WHERE Produtos.quantidade_estoque = 0 AND ItensPedido.id_pedido IS NOT NULL;
User badge image
MaryRoese .

semana passada

Respostas

User badge image

Ed Verified user icon

semana passada

Vamos analisar o que a consulta precisa fazer: - Listar produtos que já foram vendidos (ou seja, que aparecem na tabela ItensPedido). - Que atualmente não possuem estoque disponível (quantidade_estoque = 0). Agora, vamos analisar as alternativas: A) Faz um INNER JOIN com um subselect que agrupa os produtos vendidos (com SUM(quantidade) > 0) e filtra produtos com estoque zero. Parece correta, pois garante que o produto foi vendido (aparece em ItensPedido com quantidade > 0) e está com estoque zero. B) Seleciona produtos com estoque zero e que estão na lista de produtos da tabela ItensPedido (sem agrupar ou somar quantidades). Pode funcionar, mas não verifica se a quantidade vendida é maior que zero, embora isso seja implícito, já que se está em ItensPedido, foi vendido. C) Faz INNER JOIN direto entre Produtos e ItensPedido, filtrando estoque zero. Pode gerar linhas duplicadas se o produto foi vendido várias vezes, mas ainda assim retorna os produtos vendidos com estoque zero. D) Usa WHERE EXISTS para verificar se o produto está em ItensPedido e estoque zero. É uma forma eficiente e correta de garantir que o produto foi vendido e está sem estoque. E) Usa LEFT JOIN e filtra por ItensPedido.id_pedido IS NOT NULL, o que equivale a um INNER JOIN, e estoque zero. Também correto. Entre essas, as opções A, D e E são corretas, mas a mais clara e eficiente para o objetivo é a D, que usa EXISTS para verificar a existência de vendas e filtra produtos com estoque zero. Resposta correta: D) SELECT Produtos.* FROM Produtos WHERE Produtos.quantidade_estoque = 0 AND EXISTS ( SELECT 1 FROM ItensPedido WHERE ItensPedido.id_produto = Produtos.id_produto );

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina