1
resposta

[Projeto] Calculando as vendas dos produtos

DECLARE @CODIGO INT;
DECLARE @I INT;
DECLARE @NOME_DO_PRODUTO VARCHAR (20);
DECLARE @MES INT , @ANO INT;
DECLARE @NUMERO_PRODUTOS INT;
DECLARE @TOTAL_VENDAS FLOAT;
SELECT @NUMERO_PRODUTOS = COUNT (*) FROM [TABELA DE PRODUTOS];
SET @I=1;
SET @ANO = 2015;
SET @MES = 1;
WHILE @I <= @NUMERO_PRODUTOS
BEGIN
    SELECT @CODIGO = X.[CODIGO DO PRODUTO] , @NOME_DO_PRODUTO =X.[NOME DO PRODUTO] 
    FROM ( SELECT Row_Number() Over (Order By [CODIGO DO PRODUTO])as RowNum,* from[TABELA DE PRODUTOS])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 'Vendas para ' +CONVERT(VARCHAR(10) , @CODIGO) + ' - ' + @NOME_DO_PRODUTO + ' NO MÊS ' + CONVERT(VARCHAR(2), @MES) + ' E ANO ' + CONVERT(VARCHAR(4),@ANO) + ' FOI DE ' + CONVERT(VARCHAR(20), @TOTAL_VENDAS);

        SET @I = @I + 1;
END;
1 resposta

Olá Marco, tudo bem com você?

Obrigado por compartilhar seu código com a comunidade Alura. Gostei de como você estruturou o loop WHILE para calcular as vendas de cada produto de maneira iterativa. Isso demonstra um bom entendimento da lógica de controle de fluxo e das consultas SQL.

Continue dedicando aos estudos e conte com o apoio do fórum na sua jornada.

Abraços e bons estudos!