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

Lucro anual gerado por cada vendedor

Até agora vi as consultas de vendas por vendedor a cada ano:

SELECT [TABELA DE VENDEDORES].MATRICULA, [TABELA DE VENDEDORES].[NOME], YEAR(DATA) AS 'ANO', 
COUNT(*) AS 'VENDAS' FROM [TABELA DE VENDEDORES] INNER JOIN 
[NOTAS FISCAIS] ON [TABELA DE VENDEDORES].MATRICULA = [NOTAS FISCAIS].MATRICULA
GROUP BY [TABELA DE VENDEDORES].MATRICULA, [TABELA DE VENDEDORES].[NOME], YEAR(DATA) ORDER BY YEAR(DATA), [TABELA DE VENDEDORES].[NOME]

e também a consulta de lucro anual para a empresa com a quantidade de vendas:

SELECT YEAR(DATA) AS 'ANO',COUNT(*) AS 'Q. VENDAS', SUM(QUANTIDADE * PREÇO) AS 'LUCRO' FROM [NOTAS FISCAIS] INNER JOIN
[ITENS NOTAS FISCAIS] ON [NOTAS FISCAIS].NUMERO = [ITENS NOTAS FISCAIS].NUMERO
GROUP BY YEAR(DATA) ORDER BY ANO

Minha duvida é como faço para consultar o lucro gerado para a empresa anualmente, com a quantidade de vendas feitas por cada funcionário.

No caso isso exigiria o inner join entre 3 colunas. Como faço isso?

Estava tentando isso aqui mas não funcionou:

SELECT [TABELA DE VENDEDORES].MATRICULA, [TABELA DE VENDEDORES].NOME, YEAR(DATA) AS 'ANO', COUNT(*) AS 'Q. VENDAS' ,SUM(QUANTIDADE * PREÇO) AS 'LUCRO' FROM [NOTAS FISCAIS] NF INNER JOIN
[TABELA DE VENDEDORES] TV ON NF.MATRICULA = TV.MATRICULA, [ITENS NOTAS FISCAIS] INF ON NF.NUMERO = INF.NUMERO
GROUP BY MATRICULA, NOME, ANO, LUCRO
1 resposta
solução!

Olá, Gustavo, tudo bem?

Desde já peço desculpas pela demora em obter retorno.

Para obter o lucro gerado para a empresa anualmente, com a quantidade de vendas feitas por cada funcionário, você precisa fazer um INNER JOIN entre três tabelas: [TABELA DE VENDEDORES], [NOTAS FISCAIS] e [ITENS NOTAS FISCAIS]. Aqui está a consulta que pode ser usada:

SELECT YEAR(NF.DATA) AS 'ANO',
       TV.MATRICULA,
       TV.NOME,
       COUNT(*) AS 'QTD_VENDAS',
       SUM(INF.QUANTIDADE * INF.PRECO) AS 'LUCRO'
FROM [TABELA DE VENDEDORES] TV
INNER JOIN [NOTAS FISCAIS] NF ON TV.MATRICULA = NF.MATRICULA
INNER JOIN [ITENS NOTAS FISCAIS] INF ON NF.NUMERO = INF.NUMERO
GROUP BY YEAR(NF.DATA), TV.MATRICULA, TV.NOME
ORDER BY YEAR(NF.DATA), TV.NOME

Nessa consulta, estamos unindo as três tabelas usando dois INNER JOINs. A primeira junção ocorre entre a tabela [TABELA DE VENDEDORES] e [NOTAS FISCAIS], relacionando as matrículas dos vendedores. Em seguida, fazemos outra junção entre as tabelas [NOTAS FISCAIS] e [ITENS NOTAS FISCAIS], utilizando o número da nota fiscal como chave de junção.

Em seguida, agrupamos os resultados por ano, matrícula do vendedor e nome do vendedor. Com isso, obtemos a quantidade de vendas feitas por cada funcionário e o lucro gerado para a empresa anualmente.

Espero ter ajudado.

Gustavo, aproveito para comunicar que esse curso ganhou uma versão atualizada: Microsoft SQL Server 2022: consultas avançadas.

Caso surja quaisquer dúvidas, fico à disposição.

Abraços e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software