+2 votos
103 visitas
CREATE FUNCTION [DBO].[QTD_PEDIDOSATENDER](@EMPRESA INT,@FILIAL INT,@PROD INT) RETURNS FLOAT AS BEGIN DECLARE @QTD AS FLOAT SELECT @QTD = ISNULL(ROUND(SUM(ITEMOV.QUANTIDADE - ISNULL(ITEMOV.QUANTIDADEATENDIDA, 0) - ISNULL(ITEMOV.QUANTIDADEFATURADA, 0)))) FROM CM_ORDENSVENDA OV INNER JOIN CM_ORDEMVENDAITENS ITEMOV ON (ITEMOV.ORDEMVENDA = OV.HANDLE) WHERE OV.EMPRESA = @EMPRESA AND OV.FILIAL = @FILIAL AND ITEMOV.PRODUTO = @PROD AND OV.STATUS IN (2,3) AND ITEMOV.STATUS IN (2,3,4) AND OV.K9_MODALIDADE = 1 RETURN @QTD END

 

Erro:

Msg 189, Level 15, State 1, Procedure QTD_PEDIDOSATENDER, Line 1
The round function requires 2 to 3 arguments.
por (22 pontos) | 103 visitas
Oracle? SQL Server?
O problema o corre no SQL Server

1 Resposta

0 votos

ROUND do SQL Server tem pelo menos 2 argumentos.

Veja a documentação: https://docs.microsoft.com/pt-br/sql/t-sql/functions/round-transact-sql?view=sql-server-ver15

No seu comando acima o ROUND não tem apenas um argumento (O mesmo acontece para o primeiro ISNULL)

Isolando a função citada.

ISNULL(
  ROUND(
    SUM(
      ITEMOV.QUANTIDADE - ISNULL(ITEMOV.QUANTIDADEATENDIDA, 0) - ISNULL(ITEMOV.QUANTIDADEFATURADA, 0)
   )
  )
)

Deveria ser

ISNULL(
  ROUND(
    SUM(
      ITEMOV.QUANTIDADE - ISNULL(ITEMOV.QUANTIDADEATENDIDA, 0) - ISNULL(ITEMOV.QUANTIDADEFATURADA, 0)
   ), 0 -- Arredondando duas casas
  ), 0 -- ISNULL assumindo zero
)

 

por (956 pontos)

Perguntas relacionadas

+3 votos
1 resposta
+4 votos
1 resposta
+9 votos
1 resposta
Melhores Aug 2025
  1. RheaIoi8215

    5 Pontos

  2. RositaLansel

    5 Pontos

  3. MilesWeston

    5 Pontos

  4. RoseannViera

    5 Pontos

  5. DianaNickel

    5 Pontos

  6. KandiGower0

    5 Pontos

200 pontos
Melhores 2025 Aug 18 - 24
  1. Larson

    156 Pontos

  2. danilo.pereira

    96 Pontos

  3. danilo.pereira

    96 Pontos

  4. danilo.pereira

    96 Pontos

  5. luciano.fronza

    61 Pontos

  6. luciano.fronza

    61 Pontos

  7. luciano.fronza

    61 Pontos

  8. diuari.molinari

    52 Pontos

  9. diuari.molinari

    51 Pontos

  10. diuari.molinari

    51 Pontos

517 perguntas
566 respostas
389 comentários
710 usuários