Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — UFPR 2018

Banco de DadosMySQL
Código
qq406762
Banca
UFPR
Órgão
COREN-PR
Ano
2018
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Considere os comandos SQL abaixo, que foram executados no MySQL 5.5:create table produto (id int not null primary key, nome varchar(50) not null );create table notafiscal (num int not null primary key, emissao datetime not null, cliente varchar(100) not null);create table notaitem (num int not null, ordem int not null, produto int not null, qdade int not null, valor_unit numeric(10,2) not null,primary key (num,ordem), constraint nin foreign key (num) references notafiscal (num) on delete cascade on update cascadeconstraint nip foreign key (produto) references produto (id) on delete restrict on update cascade );insert into produto values (1,'A'),(2,'B'),(3,'C'),(4,'D'),(5,'E'),(6,'F'),(7,'G'),(8,'H');insert into notafiscal values (1,'2018-01-10','cliente 1'),(2,'2018-01-10','cliente 2'),(3,'2018-01-12','cliente 1'),(4,'2018-01-13','cliente 3'),(5,'2018-01-13','cliente 5'),(6,'2018-01-13','cliente 1'),(7,'2018-01-14','cliente 2'),(8,'2018-01-14','cliente 4'),(9,'2018-01-15','cliente 5'),(10,'2018-01-16','cliente 6'),(11,'2018-01-17','cliente 7');insert into notaitem values (1,1,1,1,10.0),(1,2,3,1,15.0),(2,1,1,1,10.0),(2,2,3,1,15.0),(2,3,5,1,5.0),(3,1,1,1,10.0),(3,2,6,1,20.0),(4,1,1,1,10.0),(4,2,3,7,5.0),(4,3,2,1,15.0),(4,4,6,1,20.0),(5,1,1,1,10.0),(5,2,3,1,15.0),(7,1,2,1,15.0),(7,2,4,1,10.0);Assinale a alternativa que apresenta a instrução do SQL que fornece os resultados apresentados na tabela abaixo.Imagem associada para resolução da questão
  1. Aselect n.num,n.cliente,p.id prod_id,p.nome,i.qdade,i.valor_unit,q.valor_nota from notafiscal n left join (select ii.num, sum(ii.valor_unit*ii.qdade) valor_nota from notaitem ii group by ii.num) q on q.num = n.num left join notaitem i on n.num=i.num left join produto p on p.id = i.produto order by p.nome,n.num;
  2. Bselect n.num,n.cliente,p.id prod_id,p.nome,i.qdade,i.valor_unit, (select sum(ii.valor_unit*ii.qdade) valor_nota from notaitem ii where ii.num=n.num) valor_nota from notafiscal n inner join notaitem i on i.num = n.num inner join produto p on p.id = i.produto order by p.nome,n.num;
  3. Cselect n.num,n.cliente,p.id prod_id,p.nome,i.qdade,i.valor_unit,sum(i.valor_unit*i.qdade)valor_nota from notafiscal n inner join notaitem i on i.num = n.num inner join produto p on p.id = i.produto group by n.num,n.cliente,p.id,p.nome,i.qdade,i.valor_unit order by p.nome,n.num;
  4. Dselect n.num,n.cliente,p.id prod_id,p.nome,i.qdade,i.valor_unit,sum(i.valor_unit*i.qdade)valor_nota from notafiscal n, notaitem i, produto p where i.num = n.num and p.id = i.produto order by p.nome,n.num;
  5. Eselect n.num,n.cliente,p.id prod_id,p.nome,i.qdade,i.valor_unit, (select sum(ii.valor_unit*ii.qdade) valor_nota from notaitem ii where ii.num=n.num) valor_nota from notafiscal n, notaitem i, produto p where i.num = n.num and p.id = i.produto order by n.num,p.nome;
Revelar gabarito e comentário

GabaritoB — select n.num,n.cliente,p.id prod_id,p.nome,i.qdade,i.valor_unit, (select sum(ii.valor_unit*ii.qdade) valor_nota from notaitem ii where ii.num=n.num) valor_nota from notafiscal n inner join notaitem i on i.num = n.num inner join produto p on p.id = i.produto order by p.nome,n.num;

Link permanente: /questoes/qq406762