SQL - Cambiar el formato de una consulta con decimales

   
Vista:

Cambiar el formato de una consulta con decimales

Publicado por Malow (19 intervenciones) el 04/11/2015 19:24:56
Buenas tardes, tenía una consulta en referencia al SQL server. Estoy manejando una tabla en la que los resultados que obtengo son del tipo decimal:

Tabla1.Precio
125,38
1200,50
81253512

Sin embargo, me gustaría transformarlos de la siguiente manera:

Tabla1.Precio
000000000012538
000000000120050
000008125351200

¡Muchas gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Cambiar el formato de una consulta con decimales

Publicado por Isaias (691 intervenciones) el 05/11/2015 01:57:44
Facil


1
2
3
declare @myint int
set @myint = 234
select replicate ('0',(10 - len(@myint))) + convert(varchar, @myint)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el formato de una consulta con decimales

Publicado por Malow (19 intervenciones) el 05/11/2015 11:36:11
No me ha servido o no lo se usar correctamente Isais, yo lo que necesito es que en la consulta donde tengo varias columnas me genere los valores con la estructura de los ceros en algunos casos y en otros no. Gracias de todos modos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Cambiar el formato de una consulta con decimales

Publicado por Isaias (691 intervenciones) el 05/11/2015 19:01:25
¿Porque no lo has logrado?

¿Ejecutaste el query que te di?

Ese query, en pocas palabras, le agrega a la variable @myint que tiene un valor de 234, ceros a la izquierda, ¿cuantos?, hasta un maximo de 10 de longitud, contando los 3 que ya trae la variable, ¿cual es el resultado?:

0000000234

¿Cual es el problema que lo apliques a lo que tu deseas obtener?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el formato de una consulta con decimales

Publicado por Malow (19 intervenciones) el 05/11/2015 19:24:48
Igual es que la estoy colocando mal, te enseño la query Isaias:

DECLARE @Exp nvarchar(50)set @Exp = '15-29'
SELECT T.Id_Producto, '2103' AS [01 CÓDIGO], T.Num_Expediente AS [02 EXPEDIENTEN], TEV.Valor_Mercado AS [03 VALOR DE MERCADO], TEV.MedicionX AS [04 MedidaEjeX], TEV.MedicionY AS [05 MedidaEjeY], TL.Longitud
FROM dbo.TablaProducto T LEFT JOIN TablaElementosValores TEV ON T.ID_Producto = TEV.Id_Producto LEFT JOIN TablaLongitud TL ON TL.Id_Producto = T.Id_Producto
WHERE(T.Num_Expediente = @Exp)
GROUP BY T.Id_Producto, T.Num_Expediente, TEV.Valor_Mercado, TEV.MedicionX, TEV.MedicionY, TL.Longitud

No sabría donde colocar tu consulta ya que sólo quiero que me afecte a las columnas de TEV y TL. Muchísimas gracias de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Cambiar el formato de una consulta con decimales

Publicado por Isaias (691 intervenciones) el 05/11/2015 23:32:52
¿Cual LONGITUD MAXIMA?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Cambiar el formato de una consulta con decimales

Publicado por Isaias (691 intervenciones) el 05/11/2015 23:42:59
Suponiendo que fuera de 10 de maximo de longitud

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE @Exp nvarchar(50)set @Exp = '15-29'
SELECT T.Id_Producto
, '2103' AS [01 CÓDIGO]
, T.Num_Expediente AS [02 EXPEDIENTEN]
, replicate ('0',(10 - len(TEV.Valor_Mercado))) + convert(varchar,TEV.Valor_Mercado)  AS [03 VALOR DE MERCADO]
, replicate ('0',(10 - len(TEV.MedicionX))) + convert(varchar,TEV.MedicionX)  AS [04 MedidaEjeX]
, replicate ('0',(10 - len(TEV.MedicionY))) + convert(varchar,TEV.MedicionY)  AS [05 MedidaEjeY]
, replicate ('0',(10 - len(TL.Longitud))) + convert(varchar,TL.Longitud) AS Longitud
FROM dbo.TablaProducto T LEFT JOIN TablaElementosValores TEV ON T.ID_Producto = TEV.Id_Producto
LEFT JOIN TablaLongitud TL ON TL.Id_Producto = T.Id_Producto
WHERE(T.Num_Expediente = @Exp)
GROUP BY T.Id_Producto
, T.Num_Expediente
, TEV.Valor_Mercado
, TEV.MedicionX
, TEV.MedicionY
, TL.Longitud
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el formato de una consulta con decimales

Publicado por Malow (19 intervenciones) el 06/11/2015 10:11:43
El problema Isaías es que los valores que estoy obteniendo son con decimales, es decir:
0000000012.23
Y yo lo necesito sin decimales:
0000000001223
He probado con replace y substring pero no estoy teniendo éxito, gracias como siempre Isaías.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cambiar el formato de una consulta con decimales

Publicado por Malow (19 intervenciones) el 13/11/2015 13:13:29
Lo he resuelto así, por si le ayuda a alguien:
1
REPLICATE('0',10-LEN(RTRIM(SUM(T1.Valor)))) + RTRIM(REPLACE(SUM(T1.Valor), '.',''))
Gracias chicos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar