+2 votos
93 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) | 93 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 (957 pontos)

Perguntas relacionadas

+2 votos
1 resposta
+3 votos
1 resposta
+4 votos
1 resposta
Melhores Jun 2021
  1. KlaraHarriet

    5 Pontos

  2. Roger Dias

    5 Pontos

  3. PNJ Sharptech

    5 Pontos

  4. alexlong9578

    5 Pontos

  5. LinGhh440168

    5 Pontos

200 pontos
Melhores 2021 Jun 14 - 20
  1. henrique.muller

    28 Pontos

  2. willian.metalsystem

    19 Pontos

  3. Cesar.Albuquerque

    11 Pontos

  4. rubem.oliota

    8 Pontos

  5. KlaraHarriet

    5 Pontos

  6. maicon.pereira

    5 Pontos

  7. rafael.paludo

    2 Pontos

  8. thiago.pereira

    2 Pontos

  9. alessandro.souza

    2 Pontos

  10. paulo.larini

    2 Pontos

490 perguntas
494 respostas
357 comentários
546 usuários