DECLARE @CPF VARCHAR(11);
DECLARE @NOME VARCHAR(100);
DECLARE @NUMEROS_CLIENTE INT;
DECLARE @I INT;
DECLARE @MES INT, @ANO INT;
DECLARE @TOTAL_VENDAS FLOAT;
SET @I = 1;
SELECT @NUMEROS_CLIENTE = COUNT(*) FROM [TABELA DE CLIENTES]
SET @MES = 1;
SET @ANO = 2015;
WHILE @I <= @NUMEROS_CLIENTE
BEGIN
SELECT @CPF = X.CPF, @NOME = X.NOME
FROM( SELECT ROW_NUMBER() OVER(ORDER BY CPF) AS RowNum, *
FROM [TABELA DE CLIENTES]
) X
WHERE X.RowNum = @I;
SELECT
@TOTAL_VENDAS = SUM([ITENS NOTAS FISCAIS].[QUANTIDADE] * [ITENS NOTAS FISCAIS].[PREÇO])
FROM [NOTAS FISCAIS]
JOIN [ITENS NOTAS FISCAIS]
ON [NOTAS FISCAIS].[NUMERO] = [ITENS NOTAS FISCAIS].[NUMERO]
WHERE [NOTAS FISCAIS].[CPF] = @CPF
AND YEAR([NOTAS FISCAIS].[DATA]) = @ANO AND MONTH([NOTAS FISCAIS].[DATA]) = @MES;
IF @TOTAL_VENDAS IS NULL
PRINT 'Não há registros de compras para o CPF: ' + @CPF + ', no mês de ' + LOWER(DATENAME(MONTH, @MES)) +
' de ' + CONVERT(VARCHAR(4), @ANO) + '.';
ELSE
PRINT 'O valor de vendas para ' + @NOME + ', CPF: ' + @CPF + ', no mês de ' + LOWER(DATENAME(MONTH, @MES)) +
' de ' + CONVERT(VARCHAR(4), @ANO) + ', foi de ' + FORMAT(@TOTAL_VENDAS, 'c', 'pt-br') + '.';
SET @I = @I + 1
END;