1
resposta

[Dúvida] Como digitar o valor da variável no título da coluna?

CREATE FUNCTION TotalDoBairro(@BAIRRO_ESCOLHIDO VARCHAR(20))
RETURNS FLOAT
AS
BEGIN
    DECLARE @TOTAL_DO_BAIRRO FLOAT;
    SELECT 
    @TOTAL_DO_BAIRRO = SUM(INF.QUANTIDADE * INF.[PREÇO]) FROM  [ITENS NOTAS FISCAIS] INF INNER JOIN
    (
        SELECT TC.CPF, TC.NOME, TC.BAIRRO, NF.NUMERO FROM [TABELA DE CLIENTES] TC INNER JOIN [NOTAS FISCAIS] NF ON TC.CPF = NF.CPF WHERE TC.BAIRRO = @BAIRRO_ESCOLHIDO
    ) NF2
    ON INF.NUMERO = NF2.NUMERO;
    RETURN @TOTAL_DO_BAIRRO;
END;

SELECT dbo.TotalDoBairro('Água Santa');

Exibindo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Contudo, gostaria que ficasse algo como:

Faturamento total do bairro Água Santa
19958299,8156401

Sendo assim, gostaria que o título da coluna ficasse personalizado de acordo com a escolha do bairro. Como posso fazer isso dentro de uma função?

1 resposta

Oii, Akhenaton! Tudo bem?

Dentro de uma função definida pelo usuário (UDF) no SQL Server, não é possível definir dinamicamente o nome de uma coluna no resultado, porque o esquema de retorno de uma função deve ser definido no momento da criação da função e não pode ser alterado em tempo de execução.

Mas, como sugestão, você pode usar uma stored procedure ou uma consulta dinâmica fora da função. Por exemplo, criar uma consulta dinâmica que inclui o valor da variável no título da coluna, mas tenha em mente que a execução de consultas dinâmicas deve ser feita com cuidado para evitar injeção de SQL.

Espero que a sugestão te ajude. Realize os testes para entender como funciona melhor para o seu objetivo.

Bons estudos, Akhenaton!