DECLARE @CODIGO VARCHAR(10);
DECLARE @NOME VARCHAR(100);
DECLARE @NUMERO_PRODUTOS INT;
DECLARE @MES INT, @ANO INT;
DECLARE @TOTAL_VENDAS FLOAT;
DECLARE @I INT;
SET @MES = 1;
SET @ANO = 2015;
SELECT @NUMERO_PRODUTOS = COUNT(*) FROM [TABELA DE PRODUTOS];
SET @I = 1;
WHILE @I <= @NUMERO_PRODUTOS
BEGIN
SELECT @CODIGO = X.[CODIGO DO PRODUTO], @NOME = X.[NOME DO PRODUTO]
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY [CODIGO DO PRODUTO]) AS ROWNUM, *
FROM [TABELA DE PRODUTOS]
) AS X
WHERE X.ROWNUM = @I;
SELECT @TOTAL_VENDAS = SUM([ITENS NOTAS FISCAIS].QUANTIDADE * [ITENS NOTAS FISCAIS].[PREÇO])
FROM [NOTAS FISCAIS]
INNER JOIN [ITENS NOTAS FISCAIS]
ON [NOTAS FISCAIS].NUMERO = [ITENS NOTAS FISCAIS].NUMERO
WHERE [ITENS NOTAS FISCAIS].[CODIGO DO PRODUTO] = @CODIGO
AND YEAR([NOTAS FISCAIS].[DATA]) = @ANO
AND MONTH([NOTAS FISCAIS].[DATA]) = @MES;
PRINT 'O produto ' +
@CODIGO + ' - ' + @NOME + ' vendeu R$' +
CONVERT(VARCHAR(20), @TOTAL_VENDAS) + ' no mês ' +
CONVERT(VARCHAR(2), @MES) + '/' +
CONVERT(VARCHAR(4), @ANO);
SET @I = @I + 1;
END;