Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha resolução

CREATE FUNCTION FaturamentoBairro (
    @BAIRRO VARCHAR(50)
)
RETURNS FLOAT
AS
BEGIN
    DECLARE @FATURAMENTO_TOTAL FLOAT
    SELECT @FATURAMENTO_TOTAL = SUM(INF.QUANTIDADE * INF.[PREÇO])
    FROM [ITENS NOTAS FISCAIS] INF
    INNER JOIN [NOTAS FISCAIS] NF
    ON NF.NUMERO = INF.NUMERO
    INNER JOIN [TABELA DE VENDEDORES] TV
    ON TV.MATRICULA = NF.MATRICULA
    WHERE TV.BAIRRO = @BAIRRO
    GROUP BY TV.BAIRRO
    RETURN @FATURAMENTO_TOTAL
END;

SELECT dbo.FaturamentoBairro('Jardins');

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
solução!

Oi, Ycaro! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.

Sua função FaturamentoBairro ficou bem estruturada e demonstra bom domínio de junções (INNER JOIN) e do uso de variáveis dentro de funções no SQL Server.

Uma dica interessante para o futuro é testar o uso de funções do tipo TABLE quando quiser retornar mais de uma linha ou informação detalhada. Veja este exemplo simples:


CREATE FUNCTION VendasPorBairro()
RETURNS TABLE
AS
RETURN
(
    SELECT TV.BAIRRO, SUM(INF.QUANTIDADE * INF.[PRECO]) AS FATURAMENTO
    FROM [ITENS NOTAS FISCAIS] INF
    INNER JOIN [NOTAS FISCAIS] NF ON NF.NUMERO = INF.NUMERO
    INNER JOIN [TABELA DE VENDEDORES] TV ON TV.MATRICULA = NF.MATRICULA
    GROUP BY TV.BAIRRO
);

Esse código cria uma função que retorna uma tabela com o faturamento de todos os bairros, o que pode ser útil para análises mais amplas.

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!