Funciones que devuelven tablas

04/09/2006 - 21:10 por Silviall | Informe spam
Hola a todos,

Me estoy iniciando con las funciones de sql server. Necesito una funcion que
me devuelva una tabla, pero ademas necesito que tenga unos if para que
llamen a otras funciones.
Adjunto alguna función que utilizo pero si le pongo un if no me compila
correctamente. Como seria poniendole un if?. Se le puede poner un if en
medio?
IF OBJECT_ID (N'dbo.MonitorsPossibles', N'FN') IS NOT NULL

DROP FUNCTION dbo.MonitorsPossibles;

GO

CREATE FUNCTION dbo.MonitorsPossibles(@DATAINI datetime,@DATAFI datetime)

RETURNS TABLE

AS

RETURN (select codi from personal where actiu=1 and codi not in(

SELECT distinct codipersonal from vacances where DATEPART(D,@DATA)<>DIA OR

DATEPART(M,@DATA)<>MES OR DATEPART(YYYY,@DATA)<>ANN ))

GO



Saludos,



SilviaLl.

Preguntas similare

Leer las respuestas

#1 Isaias
04/09/2006 - 21:51 | Informe spam
Perdona, ¿donde iria el IF?
Saludos
IIslas


"Silviall" wrote:

Hola a todos,

Me estoy iniciando con las funciones de sql server. Necesito una funcion que
me devuelva una tabla, pero ademas necesito que tenga unos if para que
llamen a otras funciones.
Adjunto alguna función que utilizo pero si le pongo un if no me compila
correctamente. Como seria poniendole un if?. Se le puede poner un if en
medio?
IF OBJECT_ID (N'dbo.MonitorsPossibles', N'FN') IS NOT NULL

DROP FUNCTION dbo.MonitorsPossibles;

GO

CREATE FUNCTION dbo.MonitorsPossibles(@DATAINI datetime,@DATAFI datetime)

RETURNS TABLE

AS

RETURN (select codi from personal where actiu=1 and codi not in(

SELECT distinct codipersonal from vacances where DATEPART(D,@DATA)<>DIA OR

DATEPART(M,@DATA)<>MES OR DATEPART(YYYY,@DATA)<>ANN ))

GO



Saludos,



SilviaLl.



Respuesta Responder a este mensaje
#2 Noldis Chumacero
04/09/2006 - 21:57 | Informe spam
Silviall,

Trata con este código,


Ing. Noldis Chumacero Ch.
Dpto. Sistemas, AeroSur.
Santa Cruz de la Sierra - Bolivia

"Silviall" <slladoARROBAgmailPUNTOcoEME> escribió en el mensaje
news:euk$
Hola a todos,

Me estoy iniciando con las funciones de sql server. Necesito una funcion
que me devuelva una tabla, pero ademas necesito que tenga unos if para que
llamen a otras funciones.
Adjunto alguna función que utilizo pero si le pongo un if no me compila
correctamente. Como seria poniendole un if?. Se le puede poner un if en
medio?
IF OBJECT_ID (N'dbo.MonitorsPossibles', N'FN') IS NOT NULL

DROP FUNCTION dbo.MonitorsPossibles;

GO

CREATE FUNCTION dbo.MonitorsPossibles(@DATAINI datetime,@DATAFI datetime)

RETURNS TABLE

AS

RETURN (select codi from personal where actiu=1 and codi not in(

SELECT distinct codipersonal from vacances where DATEPART(D,@DATA)<>DIA OR

DATEPART(M,@DATA)<>MES OR DATEPART(YYYY,@DATA)<>ANN ))

GO



Saludos,



SilviaLl.


Respuesta Responder a este mensaje
#3 Noldis Chumacero
04/09/2006 - 21:58 | Informe spam
Silviall

Trata con este código:


CREATE FUNCTION dbo.MonitorsPossibles(@DATAINI datetime,@DATAFI datetime)
RETURNS @mi_tabla TABLE
(
codipersonal INT
)
AS
BEGIN
IF (@DATAINI<>@DATAFI)
INSERT INTO @mi_tabla
select codi from personal where actiu=1 and codi not in(
SELECT distinct codipersonal from vacances
where DATEPART(D,@DATAINI)<>DIA
OR DATEPART(M,@DATAINI)<>MES
OR DATEPART(YYYY,@DATAINI)<>ANN )
ELSE
INSERT INTO @mi_tabla
select codi from personal where actiu=1 and codi not in(
SELECT distinct codipersonal from vacances
where DATEPART(D,@DATAFI)<>DIA
OR DATEPART(M,@DATAFI)<>MES
OR DATEPART(YYYY,@DATAFI)<>ANN )
END
GO

Saludos

Ing. Noldis Chumacero Ch.
Dpto. Sistemas, AeroSur.
Santa Cruz de la Sierra - Bolivia

"Silviall" <slladoARROBAgmailPUNTOcoEME> escribió en el mensaje
news:euk$
Hola a todos,

Me estoy iniciando con las funciones de sql server. Necesito una funcion
que me devuelva una tabla, pero ademas necesito que tenga unos if para que
llamen a otras funciones.
Adjunto alguna función que utilizo pero si le pongo un if no me compila
correctamente. Como seria poniendole un if?. Se le puede poner un if en
medio?
IF OBJECT_ID (N'dbo.MonitorsPossibles', N'FN') IS NOT NULL

DROP FUNCTION dbo.MonitorsPossibles;

GO

CREATE FUNCTION dbo.MonitorsPossibles(@DATAINI datetime,@DATAFI datetime)

RETURNS TABLE

AS

RETURN (select codi from personal where actiu=1 and codi not in(

SELECT distinct codipersonal from vacances where DATEPART(D,@DATA)<>DIA OR

DATEPART(M,@DATA)<>MES OR DATEPART(YYYY,@DATA)<>ANN ))

GO



Saludos,



SilviaLl.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida