A partir da tabela SQL 'Produtos' (id_produto INT PRIMARY KEY, nome_produto VARCHAR(255), preco DECIMAL(10,2), estoque INT) e da tabela 'Vendas' (id_venda INT PRIMARY KEY, id_produto INT, quantidade INT, data_venda DATE), considere que desejamos obter o nome do produto e o total vendido (preço * quantidade) para todos os produtos que tiveram pelo menos uma venda registrada após 1º de janeiro de 2023, ordenados pelo nome do produto. Qual das opções de query SQL abaixo atende a este requisito?
- A)SELECT P.nome_produto, SUM(P.preco * V.quantidade) AS total_vendido FROM Produtos P INNER JOIN Vendas V ON P.id_produto = V.id_product WHERE V.data_venda > '2023-01-01' GROUP BY P.nome_produto ORDER BY P.nome_produto;
- B)SELECT P.nome_produto, P.preco * V.quantidade AS total_vendido FROM Produtos P JOIN Vendas V ON P.id_produto = V.id_produto WHERE V.data_venda > '2023-01-01' ORDER BY P.nome_produto;
- C)SELECT P.nome_produto, SUM(P.preco * V.quantidade) AS total_vendido FROM Produtos P LEFT JOIN Vendas V ON P.id_produto = V.id_produto WHERE V.data_venda > '2023-01-01' GROUP BY P.nome_produto HAVING SUM(P.preco * V.quantidade) > 0 ORDER BY P.nome_produto;
- D)SELECT P.nome_produto, SUM(P.preco * V.quantidade) AS total_vendido FROM Produtos P JOIN Vendas V ON P.id_produto = V.id_produto WHERE V.data_venda > '2023-01-01' GROUP BY P.nome_produto ORDER BY P.nome_produto;gabarito
- E)SELECT P.nome_produto, P.preco * V.quantidade AS total_vendido FROM Produtos P WHERE id_produto IN (SELECT id_produto FROM Vendas WHERE data_venda > '2023-01-01') ORDER BY P.nome_produto;