1
resposta

[Sugestão] Minha resolução da atividade

WITH qtde_total AS (
    SELECT
        nf.cpf,
        to_char(nf.data_venda, 'MM-YYYY')        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
        cpf,
        to_char(nf.data_venda, 'MM-YYYY')
), clientes AS (
    SELECT
        cpf,
        nome,
        volume_de_compra
    FROM
        tabela_de_clientes
)
SELECT
    c.cpf,
    c.nome,
    c.volume_de_compra,
    qt.mes_ano,
    qt.quantidade_total,
    CASE
        WHEN c.volume_de_compra > qt.quantidade_total THEN
            'Vendas Válidas'
        ELSE
            'Vendas Inválidas'
    END                                                                           AS resultado,
    round((1 -(c.volume_de_compra / qt.quantidade_total)) * 100, 2)               AS limite_estourado
FROM
         qtde_total qt
    INNER JOIN clientes c ON qt.cpf = c.cpf
WHERE
        qt.mes_ano = '02-2015'
    AND ( c.volume_de_compra - qt.quantidade_total ) < 0;
1 resposta

Olá, Thiago, tudo bem?

Mandou muito bem resolvendo o desafio proposto.

Continue assim e bons estudos!