Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Calcular Porcentaje en sql.

Estas en el tema de Calcular Porcentaje en sql. en el foro de SQL Server en Foros del Web. saludos, tengo una inquietud ojala alguien me pueda dar una mano. Tengo la siguente estructura: Ventas cobros precobros Ahora estoy cargando una grilla en la ...
  #1 (permalink)  
Antiguo 13/08/2008, 08:36
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 meses
Puntos: 0
Calcular Porcentaje en sql.

saludos, tengo una inquietud ojala alguien me pueda dar una mano.

Tengo la siguente estructura:

Ventas
cobros
precobros


Ahora estoy cargando una grilla en la que necesito obtener el %de eficiencia de los cobros
el cual se obtiene de la siguiente formula:

%eficiencia=(precobros/cobros)

Asumiendo que el usuario tenga registrados 10 precobros de los cuales solo tenga 3 cobros realizados
el %de eficiencia de ese usuario seria:

3,3333333333=(10/3)

ese seria el resultado de la operación pero como obtener ese resultado en porcentaje? Este es mi query
y el resultado me lo devuelve en entero.

Select cobros, precobros, eficiencia=(precobros/cobros)
from ventas


Gracias por su ayuda.
  #2 (permalink)  
Antiguo 14/08/2008, 09:46
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Calcular Porcentaje en sql.

si los numeros son enteros, por default la operacion regresa un entero, entonces tendrias que aplicar un cast..


algo como...
Código:
select cast(10/ cast(3 as decimal(9,4)) as decimal(9,4))

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 15/08/2008, 13:58
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Calcular Porcentaje en sql.

Gracias por tu respuesta, pero esa operación me da el siguiente resultado asumiendo estos valores:

SELECT nombre, codigo, precobro, cobro, cast(precobro/ cast(cobro as decimal(9,2)) as decimal(9,2))
FROM cobros

4 4 1.00
1 1 1.00
1 6 0.17
8 8 1.00
4 4 1.00

Pero deberia ser ser en los que son iguales 100.00% y en este caso (1/6)=0,16666666666666666666666666666
deberia ser 16.66% y no me da ese resultado porque es decimal y no porcentaje.
Como logro un resultado en procentaje y no en decimal. Gracias.
  #4 (permalink)  
Antiguo 18/08/2008, 08:43
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Busqueda Respuesta: Calcular Porcentaje en sql.

resultado en porcentaje ?

Te lo da asi porque lo esta redondeando a dos decimales.... y eso es un resultado correcto, sin embargo, si requieres que solo lo trunque hay que utilizar la funcion round con el segundo parametro en uno.

Por lo del .16 y 16, como se puede apreciar a simple vista, solo hay que multiplicar por 100 el resultado de la division..

Te anexo un ejemplo...
Código:
Select cast( round( 1/ cast(6 as decimal(9,4)),4,0) * 100 as decimal(9,2)) Redondeado,
       cast( round( 1/ cast(6 as decimal(9,4)),4,1) * 100 as decimal(9,2)) Truncado




Redondeado   Truncado
------------ ----------
16.67        16.66

(1 row(s) affected)
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 18/08/2008 a las 09:19
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:14.