Posteado por: alejandrolaorden | 10 febrero, 2010

Aproximacion moneda redondeo SQL SERVER

Hoy me estuve rompiendo el celebro para sacar una función de redondeo que se aproximara a un precio para no dar cambio en una tienda de una moneda determinada… por ejemplo, redondear a monedas para usar como mucho la moneda de 20 céntimos y olvidarnos de las monedas pequeñas (son un engorro para algunas tiendas). La llamada a la función sería por ejemplo

SELECT B_ROUND(9.27, 0.10)

nos redondearía a la siguiente múltiplo de 10 céntimos. En este caso, el resultado sería 9.30

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
alter FUNCTION [dbo].[BROUND_05_cents] (@X money) RETURNS float AS
BEGIN
  DECLARE @temp money,
          @resul money
  SET @TEMP = (@x % 0.05)
  IF @TEMP >= 0.03
    SET @RESUL = @X + (0.05 - @TEMP)
  ELSE
    SET @RESUL = @X - @TEMP
  RETURN @resul
END
GO

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: