enviar parametro a una funcion que retorna tabla

21/07/2005 - 02:49 por Fernando Vaca | Informe spam
Hola Grupo, al realzar el siguiente select :
-
select a.fecha,
resultado = (select xx2.valor
from dbo.funcion2(1,a.fecha) as xx2
)

from dbo.funcion1('15-07-2005', '15-07-2005', 11) as a
-
Me da el siguiente error:
Servidor: mensaje 170, nivel 15, estado 1, línea 3
Línea 3: sintaxis incorrecta cerca de 'a'.

Pero cuando envio el parametro específico a la funcion2 (1, '15-07-2005')
funciona correctamente. :
-
select a.fecha,
resultado = (select xx2.valor
from dbo.funcion2(1,'15-07-2005') as xx2
)

from dbo.funcion1('15-07-2005', '15-07-2005', 11) as a
-

NOTA, la funcion2 retorna una tabla.

Alguien me puede decir por que da error en el primer select????

gracias de antemano
atte.
Fernando Vaca H.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
21/07/2005 - 10:48 | Informe spam
Prueba a convertir funcion2() a una función escalar (que devuelva un
único valor, no un conjunto de resultados) y cambia la sentencia para que se
ejecute de este modo:

SELECT a.fecha, dbo.funcion2(1,a.fecha) AS resultado
FROM dbo.funcion1('15-07-2005', '15-07-2005', 11) AS a


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Fernando Vaca" escribió en el mensaje
news:
Hola Grupo, al realzar el siguiente select :
-
select a.fecha,
resultado = (select xx2.valor
from dbo.funcion2(1,a.fecha) as xx2
)

from dbo.funcion1('15-07-2005', '15-07-2005', 11) as a
-
Me da el siguiente error:
Servidor: mensaje 170, nivel 15, estado 1, línea 3
Línea 3: sintaxis incorrecta cerca de 'a'.

Pero cuando envio el parametro específico a la funcion2 (1, '15-07-2005')
funciona correctamente. :
-
select a.fecha,
resultado = (select xx2.valor
from dbo.funcion2(1,'15-07-2005') as xx2
)

from dbo.funcion1('15-07-2005', '15-07-2005', 11) as a
-

NOTA, la funcion2 retorna una tabla.

Alguien me puede decir por que da error en el primer select????

gracias de antemano
atte.
Fernando Vaca H.


Respuesta Responder a este mensaje
#2 Eleazar
21/07/2005 - 16:22 | Informe spam
Hola comparto la idea, ademas he comprobado que el uso de funciones que
regresan una tabla es mas tardado que si agrego esa tabla en el query o creo
una temporal,
conclusion: siempre trato de evitar usar una funcion que regrese una tabla a
menos que no exista otra alternativa
"Fernando Vaca" escribió en el mensaje
news:
Hola Grupo, al realzar el siguiente select :
-
select a.fecha,
resultado = (select xx2.valor
from dbo.funcion2(1,a.fecha) as xx2
)

from dbo.funcion1('15-07-2005', '15-07-2005', 11) as a
-
Me da el siguiente error:
Servidor: mensaje 170, nivel 15, estado 1, línea 3
Línea 3: sintaxis incorrecta cerca de 'a'.

Pero cuando envio el parametro específico a la funcion2 (1, '15-07-2005')
funciona correctamente. :
-
select a.fecha,
resultado = (select xx2.valor
from dbo.funcion2(1,'15-07-2005') as xx2
)

from dbo.funcion1('15-07-2005', '15-07-2005', 11) as a
-

NOTA, la funcion2 retorna una tabla.

Alguien me puede decir por que da error en el primer select????

gracias de antemano
atte.
Fernando Vaca H.


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