Principales respuestas
Consultas con punto decimal y dos ceros (Duda)

Pregunta
-
Que tipo de valor debo usar en una tabla sql y c# para poder realizar consultas de este tipo 1.00 10.56 55.80
Ya que cuando pongo el tipo de dato decimal en sql y en c# al momento de introducir el 5.59 me lo redondea a 6.000000 y lo que quiero es que respete los decimales con dos puntos.
introduzco datos de 1-100 con numeros 1.40, 5.20, 50.30 pero todo lo redonde y yo quiero que salgan el promedio de la suma de todas entas entre la cantidad y me devuelve por ejemplo 59.900000 y en los registros en ves de poner 50.30 redondea en este caso lo pone como 50.
Respuestas
-
Lo que me gustaría hacer con esta consulta:
me regrese esto: 83.62 hay manera? o tengo que guardar el valor en una variable y a esa variable aplicar un substring aun que es mas tedioso :/ si se pudiera hacer desde sql estaría mejor.
Prueba
-- código #1 SELECT round ((sum (DUAP) / count (distinct month (FECHA))), 2, 1) as MES from TOOL_CHANGE_INJECTION where UAP = 'UAP1';
Sin embargo, debe tenerse en cuenta que si el valor de la fracción es cero, no se visualizan los dos decimales.
José Diz Belo Horizonte, MG - Brasil [query performance tuning: Porto SQL]
Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
- Editado José Diz jueves, 14 de noviembre de 2019 21:23
- Marcado como respuesta BlackCode23 jueves, 14 de noviembre de 2019 21:55
-
Listo ya logre hacer la consulta con la siguiente estructura:
- Marcado como respuesta BlackCode23 jueves, 14 de noviembre de 2019 21:55
Todas las respuestas
-
declare @mydecimal decimal (10,2) = 5.59
SELECT @mydecimalR = 5.59
IIslas Master Consultant SQL Server
- Propuesto como respuesta Pablo RubioModerator jueves, 14 de noviembre de 2019 20:34
- Votado como útil Pablo RubioModerator jueves, 14 de noviembre de 2019 20:35
-
declare @mydecimal decimal (10,2) = 5.59
SELECT @mydecimalR = 5.59
IIslas Master Consultant SQL Server
No quiero declarar variables, digamos que inserto los datos en la table con punto decimal pero al registrarlos los redondea y cuando quiero sacar el promedio de diferentes filas me deja el 56.000000
-
Que tipo de valor debo usar en una tabla sql (...) para poder realizar consultas de este tipo
1.00 10.56 55.80Usted debe declarar la columna de la tabla como decimal(n, 2) donde n es el número máximo de dígitos del número. Por ejemplo, para almacenar 98765.87 debe declarar
decimal(7,2)Esto asegurará que los valores numéricos se almacenen con hasta 2 decimales.
---
Además, el formateo final se realiza normalmente en la aplicación.
José Diz Belo Horizonte, MG - Brasil [query performance tuning: Porto SQL]
Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
- Propuesto como respuesta Pablo RubioModerator jueves, 14 de noviembre de 2019 20:34
- Editado José Diz jueves, 14 de noviembre de 2019 21:07
-
cuando quiero sacar el promedio de diferentes filas me deja el 56.000000
- Propuesto como respuesta Pablo RubioModerator jueves, 14 de noviembre de 2019 20:34
-
Fue para mostrarle graficamente como debe declarar su campo, saludos
IIslas Master Consultant SQL Server
- Propuesto como respuesta Pablo RubioModerator jueves, 14 de noviembre de 2019 20:34
- Votado como útil Pablo RubioModerator jueves, 14 de noviembre de 2019 20:35
-
-
Lo que me gustaría hacer con esta consulta:
me regrese esto: 83.62 hay manera? o tengo que guardar el valor en una variable y a esa variable aplicar un substring aun que es mas tedioso :/ si se pudiera hacer desde sql estaría mejor.
Prueba
-- código #1 SELECT round ((sum (DUAP) / count (distinct month (FECHA))), 2, 1) as MES from TOOL_CHANGE_INJECTION where UAP = 'UAP1';
Sin embargo, debe tenerse en cuenta que si el valor de la fracción es cero, no se visualizan los dos decimales.
José Diz Belo Horizonte, MG - Brasil [query performance tuning: Porto SQL]
Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
- Editado José Diz jueves, 14 de noviembre de 2019 21:23
- Marcado como respuesta BlackCode23 jueves, 14 de noviembre de 2019 21:55
-
-
Lo que me gustaría hacer con esta consulta:
me regrese esto: 83.62 hay manera? o tengo que guardar el valor en una variable y a esa variable aplicar un substring aun que es mas tedioso :/ si se pudiera hacer desde sql estaría mejor.
Prueba
-- código #1 SELECT round ((sum (DUAP) / count (distinct month (FECHA))), 2, 1) as MES from TOOL_CHANGE_INJECTION where UAP = 'UAP1';
Sin embargo, debe tenerse en cuenta que si el valor de la fracción es cero, no se visualizan los dos decimales.
José Diz Belo Horizonte, MG - Brasil [query performance tuning: Porto SQL]
Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
bueno lo intente pero solo me deja .620000 solo quiero dejar el 83.62 :/
- Marcado como respuesta BlackCode23 jueves, 14 de noviembre de 2019 21:55
- Desmarcado como respuesta BlackCode23 jueves, 14 de noviembre de 2019 21:55
-
Listo ya logre hacer la consulta con la siguiente estructura:
- Marcado como respuesta BlackCode23 jueves, 14 de noviembre de 2019 21:55
-
bueno lo intente pero solo me deja .620000 solo quiero dejar el 83.62 :/
¿El resultado fue de .620000 u 83.620000?
---Si en el resultado aparecen 6 decimales, es porque la expresión pasada como primer parámetro tiene 6 decimales. Al menos esto es lo que aparece en la documentación de la función ROUND().
ROUND(x, 2, 1) trunca x, manteniendo los dos primeros decimales y poniendo 0 en el resto. Para mantener sólo los dos decimales, después del truncamiento, puede utilizar la función CAST.
Algo como esto:
-- código #1 v3 SELECT cast (round ((sum (DUAP) / count (distinct month (FECHA))), 2, 1) as decimal(10,2)) as MES from TOOL_CHANGE_INJECTION where UAP = 'UAP1';
José Diz Belo Horizonte, MG - Brasil [query performance tuning: Porto SQL]
Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
- Editado José Diz jueves, 14 de noviembre de 2019 22:28