1
resposta

Solução Alternativa (com VIEW)

Fazendo a consulta utilizando views, fica próximo disso:

select sum(x.excedidos) as 'pacotes totas invalidos', x.datac as 'mes', count(x.doc) as 'clientes que excederam o limite' from 

(select c.cpf as doc, c.nome, c.volume_de_compra as limite_de_compra, d.quantidade as quantidade_comprada, d.data as datac, case 
when c.volume_de_compra < d.quantidade then 'passou do limite'
else 'dentro do limite'
end as validação, c.volume_de_compra - d.quantidade as 'excedidos'

from clientes c
inner join quanti d on c.cpf = d.cpf

where case 
when c.volume_de_compra < d.quantidade then 'passou do limite'
else 'dentro do limite' end = 'passou do limite'


group by c.cpf, d.data

order by c.volume_de_compra - d.quantidade) x

where x.validação = 'passou do limite'

group by x.datac;
1 resposta

Olá, Roger, tudo bem?

Mandou muito bem resolvendo o desafio proposto.

Continue assim e bons estudos!