CONVERSÃO DE DADOS DE UMA SUBSTRING

SQL Server

01/07/2019

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

Curtidas 0

Respostas

Alex William

Alex William

01/07/2019

Olá, bom dia. Tudo bem?

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

Poderia postar o erro que aparece?

Obrigado.
GOSTEI 0
Luiz Santos

Luiz Santos

01/07/2019

Bom dia Karolina.
O comando parece certo.
Que erro ele está retornando?
GOSTEI 0
Luiz Santos

Luiz Santos

01/07/2019

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
GOSTEI 0
POSTAR