+2 votos
19 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 (20 pontos) | 19 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 (871 pontos)

Perguntas relacionadas

+2 votos
1 resposta
+3 votos
1 resposta
+4 votos
1 resposta
Melhores Feb 2020
  1. diuari.molinari

    30 Pontos

  2. henrique.muller

    18 Pontos

  3. juliano.pezzini

    13 Pontos

  4. thiago.almeida

    10 Pontos

  5. bruno.viek

    9 Pontos

  6. metalsystem.gustavo

    8 Pontos

  7. Leonardo Rovigo

    7 Pontos

  8. felipe.souza

    5 Pontos

  9. antonio.teles

    5 Pontos

  10. Francisco Santana

    5 Pontos

200 pontos
Melhores 2020 Feb 24 - Mar 01
  1. diuari.molinari

    9 Pontos

  2. bruno.viek

    9 Pontos

  3. felipe.souza

    5 Pontos

  4. juliano.pezzini

    5 Pontos

408 perguntas
459 respostas
333 comentários
461 usuários