• Matéria: Informática
  • Autor: danielPaivaLima
  • Perguntado 7 anos atrás

A rede CinemaSA lançou uma nova campanha de venda de ingressos para o filme "Buscando quem foi". A campanha consiste em: Quem já assistiu o filme ao comprar uma nova entrada do tipo INTEIRA para um amigo, parente ou acompanhante, ganha inteiramente grátis um novo ingresso. Para medir o investimento (em ingressos grátis) e quantidade de possíveis clientes para escalonar Salas/Lugares/Seções necessárias, solicitou se um relatório para a equipe de T.I. com a quantidade de ingressos vendidos para este filme anteriormente a campanha, separados por tipo de ingresso. Onde foi desenvolvido um único script que retornou todos os resultados em uma única linha.



Observe que a tabela de VENDAS possui os campos: id_venda, id_filme, id_secao, id_produto e id_cliente todos do tipo bigint(12) e não aceitam valores nulos e o campo id_venda é a chave primaria da tabela. Sabendo que o filme "Buscando quem foi" é o filme de ID_filme 99 e os ingressos são vendidos em produtos identificados pelo campo ID_produto, onde 1 = "Inteiro", 2 = "1/2 Estudante/Professor", 3 = "1/2 Aposentado", 4 = "Isento/Crianças".



Ressalta-se que os ingressos do tipo Isento/Crianças não participam da promoção.

Tot_Ingr. Inteiro Est_Prof Apos. Isento_Crianças
Assinale a alternativa que apresenta o Script correto para o problema apresentado no texto e tabela.

Escolha uma:
a. SELECT
(SELECT COUNT(*) FROM VENDAS WHERE id_filme = 99) AS TOT_INGR,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 1 AND id_filme = 99) AS INTEIRO,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 2 AND id_filme = 99) AS EST_PROF,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 3 AND id_filme = 99) AS APOS,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 4 AND id_filme = 99) AS ISENTO_CRIANÇAS
FROM VENDAS WHERE id_filme = 99 GROUP BY TOT_INGR;
b. SELECT
(SELECT COUNT(*) FROM VENDAS WHERE id_filme = 99) AS TOT_INGR,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto <> 1 AND id_filme = 99) AS INTEIRO,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto <> 2 AND id_filme = 99) AS EST_PROF,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto <> 3 AND id_filme = 99) AS APOS,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto <> 4 AND id_filme = 99) AS ISENTO_CRIANÇAS
FROM VENDAS WHERE id_filme = 99 GROUP BY TOT_INGR;
c. SELECT
(SELECT COUNT(*) FROM VENDAS WHERE id_filme = 99) AS TOT_INGR,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 1 AND id_filme <= 99) AS INTEIRO,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 2 AND id_filme <= 99) AS EST_PROF,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 3 AND id_filme <= 99) AS APOS,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 4 AND id_filme <= 99) AS ISENTO_CRIANÇAS
FROM VENDAS WHERE id_filme = 99 GROUP BY TOT_INGR;
d. SELECT
(SELECT COUNT(*) FROM VENDAS WHERE id_filme = 99) AS TOT_INGR,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 4 AND id_filme = 99) AS INTEIRO,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 3 AND id_filme = 99) AS EST_PROF,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 2 AND id_filme = 99) AS APOS,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 1 AND id_filme = 99) AS ISENTO_CRIANÇAS
FROM VENDAS WHERE id_filme = 99 GROUP BY TOT_INGR;
e. SELECT
(SELECT COUNT(*) FROM VENDAS WHERE id_filme Not In 99) AS TOT_INGR,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 1 AND id_filme = 99) AS INTEIRO,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 2 AND id_filme = 99) AS EST_PROF,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 3 AND id_filme = 99) AS APOS,
(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 4 AND id_filme = 99) AS ISENTO_CRIANÇAS
FROM VENDAS WHERE id_filme Not in 99 GROUP BY TOT_INGR;

Respostas

respondido por: JhonnyPedroso
82

Resposta correta:

SELECT

(SELECT COUNT(*) FROM VENDAS WHERE id_filme = 99) AS TOT_INGR,

(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 1 AND id_filme = 99) AS INTEIRO,

(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 2 AND id_filme = 99) AS EST_PROF,

(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 3 AND id_filme = 99) AS APOS,

(SELECT COUNT(id_produto) FROM VENDAS WHERE id_produto = 4 AND id_filme = 99) AS ISENTO_CRIANÇAS

FROM VENDAS WHERE id_filme = 99 GROUP BY TOT_INGR;


danielPaivaLima: correto... muito obrigado
JhonnyPedroso: Vlw
Perguntas similares