Oi, Luciano! Tudo bem por aí?
Você está no caminho certo! No entanto, observei em seu resultado que os centavos não apareceram como esperado.
Como estamos lidando com dinheiro (o qual necessita de uma precisão decimal para representar os centavos), é importante especificar, ao utilizar a função STR
, o número de casas decimais para que a conversão para string seja feita corretamente.
Essa etapa é importante, uma vez que, por padrão, a função STR
arredonda as casas decimais.
No script abaixo, tem-se a especificação da quantidade de números antes e depois da vírgula, respectivamente, indicados por 10
e 2
:
SELECT CONCAT ('O cliente ', TC.NOME, ' comprou R$ ', CAST(STR(SUM(INF.QUANTIDADE * INF.PRECO), 10, 2) AS MONEY), ' no ano de ', CAST(NF.DATA_VENDA AS VARCHAR(4)))
FROM TABELA_DE_CLIENTES TC
INNER JOIN NOTAS_FISCAIS NF ON TC.CPF = NF.CPF
INNER JOIN ITENS_NOTAS_FISCAIS INF ON NF.NUMERO = INF.NUMERO
WHERE YEAR(NF.DATA_VENDA) = 2016
GROUP BY TC.NOME, NF.DATA_VENDA
Espero ter ajudado! Caso tenha interesse em se aprofundar na utilização e nas especificidades da função STR
, recomendo a leitura do material abaixo:
Um abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!