1
resposta

Resolução

Boa noite Segue resolução do desafio:

SELECT 
TC.CPF, TC.NOME, TC.VOLUME_DE_COMPRA, TV.MES_ANO, TV.QUANTIDADE_TOTAL,
(CASE WHEN TC.VOLUME_DE_COMPRA >= TV.QUANTIDADE_TOTAL THEN 'VENDAS VÁLIDAS'
ELSE 'VENDAS INVÁLIDAS' END) AS RESULTADO
, ROUND ((1-(TC.VOLUME_DE_COMPRA/TV.QUANTIDADE_TOTAL)) * 100,2) AS PERCENTUAIS
FROM TABELA_DE_CLIENTES TC
INNER JOIN 
    (
        SELECT 
        NF.CPF
        , CONVERT(VARCHAR(7), NF.DATA_VENDA, 120) AS MES_ANO
        , SUM(INF.QUANTIDADE) AS QUANTIDADE_TOTAL
        FROM NOTAS_FISCAIS NF
        INNER JOIN ITENS_NOTAS_FISCAIS INF
        ON NF.NUMERO = INF.NUMERO
        GROUP BY 
        NF.CPF
        , CONVERT(VARCHAR(7), NF.DATA_VENDA, 120)
) TV
ON TC.CPF = TV.CPF
WHERE TC.VOLUME_DE_COMPRA < TV.QUANTIDADE_TOTAL AND MES_ANO = '2015-01'
1 resposta

Bom dia, Cristin! Como vai?

Obrigado por compartilhar sua solução com a comunidade Alura. Como relembrar é manter vivo na memória, deixo abaixo uma tabela com um resumo dos principais funções que você utilizou no código:

ComandoDescrição
SELECTDefine as colunas a serem retornadas pela consulta.
CASE WHEN ... THEN ... ELSE ... ENDExpressão condicional usada para retornar um valor com base em uma condição.
ROUND()Função que arredonda um número para um número especificado de casas decimais.
FROMDefine a tabela de onde os dados serão extraídos.
INNER JOINRealiza a junção entre duas tabelas, retornando apenas os registros com correspondência em ambas.
GROUP BYAgrupa os resultados com base em uma ou mais colunas, necessário quando utilizamos funções agregadas.
CONVERT()Converte um valor de um tipo de dados para outro. Neste caso, converte a data para um formato de ano-mês.
SUM()Função agregada que retorna a soma dos valores de uma coluna.
WHEREFiltra os resultados da consulta com base em uma condição.
ANDOperador lógico usado para combinar múltiplas condições na cláusula WHERE.
ASUsado para dar um alias (nome alternativo) a uma coluna ou tabela.

Conte com o apoio do Fórum na sua jornada.

Abraços e bons estudos!