1
resposta

Caso não use o decimal

Boa tarde! Para o caso de não queria usar o decimal... podem conferir se fiz certo, por favor?

 SELECT ' O cliente ' + [NOME] + ' faturou ' + CONVERT(VARCHAR, SUM([QUANTIDADE]+[PREÇO])) + ' no ano de ' + CONVERT(VARCHAR, YEAR(DATA)) AS SENTENÇA
 FROM [dbo].[ITENS NOTAS FISCAIS] INNER JOIN [dbo].[NOTAS FISCAIS]
 ON [dbo].[ITENS NOTAS FISCAIS].[NUMERO] = [dbo].[NOTAS FISCAIS].[NUMERO]
 INNER JOIN [dbo].[TABELA DE CLIENTES]
 ON [dbo].[NOTAS FISCAIS].[CPF] = [dbo].[TABELA DE CLIENTES].[CPF]
 WHERE YEAR(DATA) = 2016
 GROUP BY [NOME],YEAR(DATA)

Grata, Luise!

1 resposta

Olá, Luise, tudo bem?

Para calcular o faturamento, realizamos a multiplicação do campo quantidade pelo preço, ao invés da soma. Ao realizar essa alteração na sua query, o resultado é retornado como uma expressão matemática:

imagem da execução da query disponibilizada pela aluna Luise, onde a formula de calcular o faturamento e um dos resultados obtidos estão destacados com um quadrado vermelho sem preenchimento

Para retornar o valor de forma correta, é necessário utilizar mais um CONVERT. Você precisa converter o resultado da soma do campo QUANTIDADE vezes PREÇO, para DECIMAL e em seguida para VARCHAR:

CONVERT(VARCHAR,CONVERT(DECIMAL(15,2), SUM([QUANTIDADE]*[PREÇO]))) 

A query completa fica da seguinte forma:

 SELECT ' O cliente ' + [NOME] + ' faturou ' + CONVERT(VARCHAR,CONVERT(DECIMAL(15,2), SUM([QUANTIDADE]*[PREÇO]))) + ' no ano de ' + CONVERT(VARCHAR, YEAR(DATA)) AS SENTENÇA
 FROM [dbo].[ITENS NOTAS FISCAIS] INNER JOIN [dbo].[NOTAS FISCAIS]
 ON [dbo].[ITENS NOTAS FISCAIS].[NUMERO] = [dbo].[NOTAS FISCAIS].[NUMERO]
 INNER JOIN [dbo].[TABELA DE CLIENTES]
 ON [dbo].[NOTAS FISCAIS].[CPF] = [dbo].[TABELA DE CLIENTES].[CPF]
 WHERE YEAR(DATA) = 2016
 GROUP BY [NOME],YEAR(DATA)

Foi muito legal você ter compartilhado a sua resposta da atividade aqui com a gente.

Continue assim e bons estudos!