Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

1
resposta

[Projeto] Projeto - Resultado em tabela temporária usando Joins (última aula do curso)

Como exercício, fiz o código da última aula, sem utilizar o looping do WHILE, apenas JOINS e AGREGAÇÕES como o professor sugeriu. O código consiste em agrupar os dados, realizando o cálculo do valor total das vendas por cliente, num determinado mês e ano.

DECLARE @ANO INT, @MES INT;
DECLARE @TABELA_RANKING TABLE (CPF VARCHAR(11), NOME VARCHAR(100), ANO VARCHAR(4), MES VARCHAR(2), VALOR_TOTAL FLOAT)

SET @ANO = 2015; 
SET @MES = 1;

INSERT INTO @TABELA_RANKING
SELECT 
    [TABELA DE CLIENTES].CPF
,	[TABELA DE CLIENTES].NOME
,	YEAR([NOTAS FISCAIS].DATA) AS ANO
,	MONTH([NOTAS FISCAIS].DATA) AS MES
,	ROUND(SUM([ITENS NOTAS FISCAIS].QUANTIDADE * [ITENS NOTAS FISCAIS].PREÇO), 2) AS VALOR_TOTAL  -- ROUND converte para 2 casas decimais
FROM [TABELA DE CLIENTES] 
    INNER JOIN [NOTAS FISCAIS] 
ON [TABELA DE CLIENTES].CPF = [NOTAS FISCAIS].CPF
    INNER JOIN [ITENS NOTAS FISCAIS] 
ON [NOTAS FISCAIS].NUMERO = [ITENS NOTAS FISCAIS].NUMERO
WHERE YEAR([NOTAS FISCAIS].DATA) = @ANO
AND MONTH([NOTAS FISCAIS].DATA) = @MES
GROUP BY 
  [TABELA DE CLIENTES].CPF
, [TABELA DE CLIENTES].NOME
, YEAR([NOTAS FISCAIS].DATA)
, MONTH([NOTAS FISCAIS].DATA)

SELECT * FROM @TABELA_RANKING
ORDER BY VALOR_TOTAL DESC;

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Érik! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você organizou bem os JOINS e as agregações, deixando o fluxo do cálculo direto e limpo. A forma como você estruturou o agrupamento mostra que você entendeu bem a lógica da atividade.

Continue assim!

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!