Usuário com melhor resposta
Resultado de uma query

Pergunta
-
Boa tarde..
Tenho a query abaixo e estava funcionando perfeitamente ate alguns dias atras, agora quando estou executando ela me aparece a mensagem abaixo.
Segue a query
SELECT DISTINCT
SE.E1_NUM AS NOTA,
SE.E1_NOMCLI AS CLIENTE,
SC.C6_DESCRI AS PRODUTO,
SE.E1_VALOR AS PARCELA,
CAST(((SE.E1_VALOR / SF.F2_VALBRUT) * (SF.F2_VALBRUT - (SF.F2_VALIPI + SF.F2_VALICM + SF.F2_VALIMP5 + SF.F2_VALIMP6))) AS numeric(18,4)) AS PARIMPOSTO,
CONVERT(VARCHAR(10), CAST(SE.E1_BAIXA AS DATE), 103) AS VENCIMENTO,
SC.C6_PRCVEN AS VENDA,
SC.C6_XPRCDJ AS PRECOMAXIMOVENDA,
SA.A3_COMIS AS COMISSAOVENDEDOR,
CAST(case when SC.C6_XPRCDJ = 0 then 0
else case when ((SC.C6_PRCVEN / SC.C6_XPRCDJ) * SA.A3_COMIS) > 10 then 10
else ((SC.C6_PRCVEN / SC.C6_XPRCDJ) * SA.A3_COMIS) end end AS NUMERIC(18,4)) AS COMISSAO,
(((SE.E1_VALOR / SF.F2_VALBRUT) * (SF.F2_VALBRUT - (SF.F2_VALIPI + SF.F2_VALICM + SF.F2_VALIMP5 + SF.F2_VALIMP6))) *
(case when SC.C6_XPRCDJ = 0 then 0 else case when ((SC.C6_PRCVEN / SC.C6_XPRCDJ) * SA.A3_COMIS) > 10 then 10
else ((SC.C6_PRCVEN / SC.C6_XPRCDJ) * SA.A3_COMIS) end end)) /100 AS VALORAPAGAR
FROM SE1010 AS SE
LEFT JOIN SF2010 AS SF WITH (NOLOCK) ON SF.F2_DOC = SE.E1_NUM
INNER JOIN SC6010 AS SC WITH (NOLOCK) ON SC.C6_NOTA = SE.E1_NUM
INNER JOIN SA3010 AS SA WITH (NOLOCK) ON SA.A3_COD = SE.E1_VEND1
WHERE SA.A3_NREDUZ = 'HOMEOTEC' AND CONVERT(varchar(10), SE.E1_BAIXA , 103) BETWEEN CONVERT(date, '01/03/2019' , 103) AND CONVERT(date, '31/03/2019' , 103)
AND SE.D_E_L_E_T_ <> '*' AND SF.D_E_L_E_T_ <> '*' AND SC.D_E_L_E_T_ <> '*' AND SA.D_E_L_E_T_ <> '*' AND SE.E1_STATUS = 'B'
ORDER BY SE.E1_NUMSegue o resultado..
Mensagem 245, Nível 16, Estado 1, Linha 1
Falha ao converter o varchar valor '22.31 ' para o tipo de dados int.
Desde já agradeço
JUNIOR GUERREIRO T.I
Respostas
-
-
Pela mensagem: Falha ao converter o varchar valor '22.31 ' para o tipo de dados int.
Sugiro que antes de converter o valor utilize LTRIM e RTRIM para remover os espaços, ficaria tipo o exemplo abaixo:
select cast(RTRIM(LTRIM('22.31 ')) as numeric(18,4) valor
Todas as Respostas
-
-
Pela mensagem: Falha ao converter o varchar valor '22.31 ' para o tipo de dados int.
Sugiro que antes de converter o valor utilize LTRIM e RTRIM para remover os espaços, ficaria tipo o exemplo abaixo:
select cast(RTRIM(LTRIM('22.31 ')) as numeric(18,4) valor