CONVERSÃO DE DADOS DE UMA SUBSTRING

01/07/2019

0

Oi,

Precisando de ajuda

Preciso converter os dados de uma base de dados, os dados estão como NVARCHAR e preciso realizar cálculo então montei conforme abaixo, mas ainda não consegui concluir, sempre dá erro.

SELECT
N_transporte
,sum([PESO_DE_CARGA]) [Peso_de_carga_permitido]
,sum([PESO_TOTAL]) [Peso_total]
,sum([QUANTIDADE_2]) [Quantidade]
,sum([VALOR_FRETE]) [Valor frete]
,avg([CUSTOS_FRETE_REAIS]) [Custos frete reais]
,avg([TARIFA_FRETE]) [Tarifa frete]
FROM(
SELECT
CASE ISNUMERIC (Quantidade) WHEN 1 THEN CONVERT (NUMERIC (18,2), Quantidade)
ELSE 0.00
END
AS QUANTIDADE_2
, CASE ISNUMERIC (Peso_de_carga_permitido) WHEN 1 THEN CONVERT (NUMERIC (18,2), Peso_de_carga_permitido)
ELSE 0.00
END
, CASE ISNUMERIC (Peso_total) WHEN 1 THEN CONVERT (NUMERIC (18,2), Peso_total)
ELSE 0.00
END
, CASE ISNUMERIC (Valor_frete) WHEN 1 THEN CONVERT (NUMERIC (18,2), Valor_frete)
ELSE 0.00
END
, CASE ISNUMERIC (Custos_frete_reais) WHEN 1 THEN CONVERT (NUMERIC (18,2), Custos_frete_reais)
ELSE 0.00
END
, CASE ISNUMERIC (Tarifa_frete) WHEN 1 THEN CONVERT (NUMERIC (18,2), Tarifa_frete)
ELSE 0.00
END FROM FRETE_BASE GROUP BY N_transporte)

Obrigada.
Karolina

Karolina

Responder

Posts

02/07/2019

Alex William

Olá, bom dia. Tudo bem?

Já tentou usar CAST ao invés de CONVERT ????

Poderia postar o erro que aparece?

Obrigado.
Responder

02/07/2019

Luiz Santos

Bom dia Karolina.
O comando parece certo.
Que erro ele está retornando?
Responder

02/07/2019

Luiz Santos

Karolina, olhando o seu código com mais atenção, vi a forma que você montou o CASE.

Tente montar dessa forma que estou passando.

SELECT CASE WHEN ISNUMERIC(TESTE) = 1 THEN 
	   CONVERT(NUMERIC(18,2), TESTE) ELSE 0.00 
	   END [TESTE CASE]
  FROM #TESTE


Grande abraço
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar