CONVERSÃO DE DADOS DE UMA SUBSTRING
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.
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
Curtidas 0
Respostas
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.
Já tentou usar CAST ao invés de CONVERT ????
Poderia postar o erro que aparece?
Obrigado.
GOSTEI 0
Luiz Santos
01/07/2019
Bom dia Karolina.
O comando parece certo.
Que erro ele está retornando?
O comando parece certo.
Que erro ele está retornando?
GOSTEI 0
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.
Grande abraço
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