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

Convertir funcion de access a funcion de sql

Estas en el tema de Convertir funcion de access a funcion de sql en el foro de SQL Server en Foros del Web. Hola amigos yo soy medio nueva en sql y quisiera convertir una funcion que tengo hecha para access a sql. Les mando la funcion en ...
  #1 (permalink)  
Antiguo 01/06/2008, 11:00
 
Fecha de Ingreso: junio-2008
Mensajes: 1
Antigüedad: 15 años, 11 meses
Puntos: 0
Convertir funcion de access a funcion de sql

Hola amigos yo soy medio nueva en sql y quisiera convertir una funcion que tengo hecha para access a sql.
Les mando la funcion en access y lo que he logrado hacer en sql para ver si me ayudan a darle los toques finales.

Esta es la funcion en Access
Public Function ProximaInspeccionIntermedia(FechaExpiracionAnual As Date, Periodos As Double, Duracion As Integer) As Date

Dim Anualidad As Date
Dim i As Double
For i = Periodos To Duracion Step Periodos

Anualidad = FechaExpiracionAnual
If (Anualidad <= Now()) Then
ProximaInspeccionIntermedia = DateAdd("m", 0, Anualidad)
Else
If (Anualidad >= Now) Then
ProximaInspeccionIntermedia = DateAdd("m", 0, Anualidad)
End If
Exit For
End If
Next i


End Function


Y esto es lo que tengo hecho en Sql
CREATE FUNCTION ProximaInspeccionIntermedia
(@FechaExpiracionAnual Date, @Periodos Double, @Duracion Integer)
RETURNS Datetime
BEGIN
DECLARE Anualidad DATEtime
DECLARE i DOUBLE
FOR i = Periodos TO Duracion Step Periodos

Anualidad = FechaExpiracionAnual
IF (Anualidad <= getdate()) THEN
ProximaInspeccionIntermedia = DateAdd("m", 0, Anualidad)
Else
If (Anualidad >= getdate) Then
ProximaInspeccionIntermedia = DateAdd("m", 0, Anualidad)
End If
Exit For
End If
Next i;

End Function
  #2 (permalink)  
Antiguo 02/06/2008, 09:17
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Convertir funcion de access a funcion de sql

aunque no me queda muy claro la funcionalidad, la sintaxis seria algo mas o menos asi...


Código:
CREATE FUNCTION dbo.ProximaInspeccionIntermedia(
    @FechaExpiracionAnual Date
   ,@Periodos             decimal(5,2)
   ,@Duracion             Integer
   ,@FechaActual          datetime) 
RETURNS Datetime
BEGIN
Declare @Anualidad DATEtime
       ,@i decimal(5,2)
       ,@FechaReturn datetime
       ,@Continue bit

Set @i = Periodos
Set @Continue = 1

While  i <= Duracion  And @Continue = 1
Begin 
   Set @Anualidad = FechaExpiracionAnual

   If (@Anualidad <= @FechaActual) 
   Begin
      Set @FechaReturn = DateAdd("m", 0, Anualidad)
   End
   Else
   Begin
      If (Anualidad >= @FechaActual) 
      Begin
         Set @FechaReturn = DateAdd("m", 0, Anualidad)
      End
      Set @Continue = 0
   End
   Set @i = @i + Periodos
End

Return @FechaReturn
End
GO

Espero te sea util para continuar con la funcionalidad...

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.
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 15:26.