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;