1
resposta

minha resposta com comentários sobre o select de teste do marcelo.

CREATE FUNCTION NOTAS_NA_DATA (@DATANOTAS AS DATE) RETURNS INT
AS
BEGIN
    DECLARE @QUANTIDADE_NOTAS INT
    SELECT 
        @QUANTIDADE_NOTAS=COUNT(NUMERO)
    FROM 
        [NOTAS FISCAIS]
    WHERE 
        [DATA] = @DATANOTAS
    RETURN @QUANTIDADE_NOTAS
END

se você for testar pra todas as datas em um select, lembre-se que as datas se repetem por que tem várias notas no mesmo dia, mas a função não é mágica então vc precisa distinguir as diferentes datas:

SELECT 
    [DATA], DBO.NOTAS_NA_DATA([DATA]) 
FROM  
    [NOTAS FISCAIS] 
GROUP BY --E ESSA FOI A FORMA DO MARCELO DE DISTINGUIR
    [DATA]

Com distinct vai demorar uma vida, por que ele vai ter que rodar a função 1 vez para cada linha da tabela.

1 resposta

Olá Lucas, tudo bem?

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

Analisei o seu código e ele está correto, parabéns!

De fato, a depender da situação, utilizar o distinct pode tornar a execução do select mais lenta, principalmente em tabelas grandes.

Lucas, aproveito o momento para comunicar que esse curso ganhou uma versão atualizada: Microsoft SQL Server 2022: conhecendo o T-SQL.

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!