06/04/2009, 06:39
|
| Colaborador | | Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses Puntos: 38 | |
Respuesta: Select - condiciones de fecha Aunque me suena mas logico que los que tienen mayor antiguedad deberian tener el mayor descuento...
Código:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fnYearsDiff]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fnYearsDiff]
GO
CREATE FUNCTION dbo.fnYearsDiff(@date1 datetime , @date2 datetime)
RETURNS INTEGER
AS
BEGIN
DECLARE @YearsDiff INTEGER
SET @date1 = convert(varchar, @date1, 112)
SET @date2 = convert(varchar, @date2, 112)
SET @YearsDiff = datediff(yy, @date1, @date2)
IF (dateadd(yy, datediff(yy, @date1, @date2), @date1) > @date2)
SET @YearsDiff = @YearsDiff - 1
return @YearsDiff
END
GO
INSERT INTO PAGO(id_estudiante, monto)
SELECT [Id],
CASE WHEN dbo.fnYearsDiff(fecha_ingreso, getdate()) >= 3 THEN (mensualidad * .95) -- 5 %
WHEN dbo.fnYearsDiff(fecha_ingreso, getdate()) >= 2 THEN (mensualidad * .90) -- 10%
ELSE mensualidad END
FROM ESTUDIANTES
Espero te sirva... 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; 06/04/2009 a las 06:59 |