Olá, tudo bem?
Acredito ter havido um equívoco. Na posição 14:25 do vídeo o instrutor disse ter havido um erro no comando feito, porque ele estaria usando a cláusula 'Group by' e isso obrigaria a ter a função SUM (depois ele utilizou um MAX) para todo campo numérico, mas pelo que observei no vídeo o erro se deu porque ele associou o campo TC.QUANTIDADE à TABELA_DE_CLIENTES e esse campo não existe nessa tabela, o campo correto é o VOLUME_DE_COMPRA. Eu montei meu comando sem utilizar a cláusula MAX em um Select único sem precisar da Subconsulta e obtive o mesmo resultado do instrutor, está correto ou posso ter algum problema com esse meu comando?
Meus comandos:
SELECT NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m') AS 'ANO-MES', SUM(ITF.QUANTIDADE) AS QUANTIDADE_VENDAS, TC.VOLUME_DE_COMPRA AS QUANTIDADE_LIMIT FROM notas_fiscais NF INNER JOIN itens_notas_fiscais ITF ON NF.NUMERO= ITF.NUMERO INNER JOIN tabela_de_clientes TC ON NF.CPF = TC.CPF GROUP BY NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m');
Meu Comando final sem a Subconsulta:
SELECT NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m') AS 'ANO-MES', SUM(ITF.QUANTIDADE) AS QUANTIDADE_VENDAS, TC.VOLUME_DE_COMPRA AS QUANTIDADE_LIMITE, TC.VOLUME_DE_COMPRA - SUM(ITF.QUANTIDADE) AS DIFERENCA, CASE WHEN (TC.VOLUME_DE_COMPRA - SUM(ITF.QUANTIDADE)) < 0 THEN 'INVÁLIDA' ELSE 'VÁLIDA' END AS STATUS_VENDA FROM notas_fiscais NF INNER JOIN itens_notas_fiscais ITF ON NF.NUMERO= ITF.NUMERO INNER JOIN tabela_de_clientes TC ON NF.CPF = TC.CPF GROUP BY NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m');
Comando do Instrutor que apresentou o erro: