1
resposta

Não consegui resolver o desafio

Olá pessoal, boa noite!!

Eu montei uma query diferente da que o Victorino montou na ultima aula, segue ela abaixo

select tc.nome, sum(inf.quantidade) as total,date_format(nf.DATA_VENDA,'%Y-%m') as compras_no_mes,VOLUME_DE_COMPRA, (tc.volume_de_compra-(sum(inf.quantidade))) as diferenca, case when (tc.volume_de_compra-(sum(inf.quantidade)))>0 then 'válido' else 'inválida' end as analise from notas_fiscais nf inner join itens_notas_fiscais inf on nf.numero=inf.numero inner join tabela_de_clientes tc on nf.cpf=tc.cpf group by nf.cpf,date_format(nf.DATA_VENDA,'%Y-%m');

Tentei usá-la como base para resolver o desafio mas não conseguir. Tentei como um [where (tc.volume_de_compra-(sum(inf.quantidade)))<0] antes do group by mas não resolveu.

O Victorino fez uma subconsulta na query, coisa que não fiz na minha. Será por isso que não estou conseguindo? Caso seja por isso queria entender o pq.

Grande abraço!

1 resposta

Olá Vitor, tudo bem? Realmente não é possível, porque no fim você vai precisar usar dois GROUP BY, porque um vai atuar sobre o SELECT e o outro sobre a clausura WHERE porém isso não é possível, então a solução é usar uma sub consulta como por exemplo:

SELECT * FROM 
    (select 
    tc.nome, 
    sum(inf.quantidade) as total,
    date_format(nf.DATA_VENDA,'%Y-%m') as compras_no_mes,
    VOLUME_DE_COMPRA, 
    (tc.volume_de_compra - (sum(inf.quantidade))) as diferenca, 
    case 
        when (tc.volume_de_compra-(sum(inf.quantidade))) > 0 then 'válido' 
        else 'inválida' 
    end as analise,
    (1 - (MAX(VOLUME_DE_COMPRA)) / (sum(inf.quantidade))) * 100 AS PERCENTUAL
    from notas_fiscais nf 
    inner join itens_notas_fiscais inf on nf.numero=inf.numero 
    inner join tabela_de_clientes tc on nf.cpf=tc.cpf 
    group by tc.nome, nf.cpf, date_format(nf.DATA_VENDA,'%Y-%m')) X
where (X.volume_de_compra - X.total) < 0;

Espero ter ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software