Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida do sql do 3° exercício da aula 4

Ao tentar realizar a 3° atividade da aula 4 "Quero calcular a diferença entre o total gasto entre dois anos, 2014 e 2015. Como posso fazer essa consulta?" com o conteúdo apresentado até então, tive dificuldades, então cliquei no botão "Preciso de ajuda!". Porem a solução apresentada não retorna o valor correto. Analisando o sql proposto: "select sum(c1.valor) - sum(c2.valor) from compras c1, compras c2 where c1.data between '2014-01-01' and '2014-12-31' and c2.data between '2015-01-01' and '2015-12-31'" Ele apresenta valores repetidos para os registros, um resultado errado para o exercício. Poderiamos resolver o exercício utilizando JOINS ou sub-selects, porem como o assunto ainda não foi tratado, não consegui encontrar uma forma de responder usando um select mais simples. Alguém teria uma solução para o exercício proposto ou uma correção para esta minha dúvida?

2 respostas
solução!

Desculpe realmente está errado o exercício. No caso não existe nenhuma solução sem usar subqueries ou joins possíveis soluções seriam:

select sum(c1.valor) - (select sum(c2.valor) from compras c2 where c2.data between '2015-01-01' and '2015-12-31') from compras c1 where c1.data between '2014-01-01' and '2014-12-31';

ou

select (select sum(c1.valor) from compras c1 where c1.data between '2014-01-01' and '2014-12-31') - (select sum(c2.valor) from compras c2 where c2.data between '2015-01-01' and '2015-12-31');

Vou corrigir o exercício e colocar essas respostas como avançadas

select sum(c1.valor) - (select sum(c2.valor) from compras c2 where c2.data between '2015-01-01' and '2015-12-31') from compras c1 where c1.data between '2014-01-01' and '2014-12-31';