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
Advertisement

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Categorías

Seguir

Get every new post delivered to your Inbox.