0
respostas

Minha resolução

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;

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora