Parametros a un store procedure

29/07/2004 - 19:10 por x-man | Informe spam
Hola estimados, tengo el siguiente sp a cual necesito pasarle varios
parametros en este caso Estados, actualmente solo le paso uno con la
variable @IdEstado que esta en el Having, el problema es que depende de
donde lo llame al sp (lo llamo desde vb6) varian los estados que me hace
falta mostrar, supongamos que lo Estados van del 1 al 8, deberia pararle
segun el caso por ej: 1,4,5 o 1,2,8 o 2 o 5,7
Esto se puede hacer con el sp q esta a continuacion o hay q usar sql
dinámico que por cierto nunca lo he usado
MUCHAS GRACIAS.

CREATE PROCEDURE pa_busca_alu_por_curso_estado (@Curso as char(3), @IdEstado
as smallint)AS
set nocount on
SELECT
A.Apellidos, A.Nombres, A.Legajo, A.IDAlumno, A.NroDocumento,
A.Curso,A.Domicilio,
A.Piso, A.Dpto, A.FechaNacimiento, A.Telefono, A.E_mail, B.[Fecha] AS
FechaUltEstado,
E.Descripcion AS Estado, T.Descripcion AS TipoDoc, L.Descripcion AS
Localidad, P.Descripcion AS Ciclo
FROM Alumnos A
INNER JOIN TipoDocumento T ON A.IDTipoDocumento = T.IDTipoDocumento
INNER JOIN Localidades L ON A.IDLocalidad = L.IDLocalidad
INNER JOIN AlumnosEstados B ON A.IdAlumno = B.IdAlumno
INNER JOIN Estados E ON B.IdEstado = E.IdEstado
INNER JOIN Curso C ON A.Curso = C.Curso
INNER JOIN CicloEnseñanza P ON P.IDCicloEnseñanza = C.IDCicloEnseñanza
WHERE B.[Fecha] = (SELECT MAX([Fecha]) FROM
AlumnosEstados D where B.IdAlumno = D.IdAlumno and A.Curso LIKE @Curso)
GROUP BY A.Apellidos, A.Nombres, A.Legajo, A.IDAlumno, A.NroDocumento,
A.Curso,
A.Domicilio, A.Piso, A.Dpto, A.FechaNacimiento, A.Telefono, A.E_mail,
B.[Fecha], E.Descripcion, T.Descripcion, L.Descripcion, P.Descripcion,
E.IdEstado
HAVING E.IDestado = @IdEstado
ORDER BY ApellidoNombre

Preguntas similare

Leer las respuestas

#6 miguel vazquez
04/08/2004 - 00:47 | Informe spam
Algo que podrias hacer es llenar primeramente una tabla
con los estados que quieras mandar y dentro del sp
solamente haces inner join con los registros que estan en
esta tabla. Asi te evitas el SQL dinamico

Hola estimados, tengo el siguiente sp a cual necesito


pasarle varios
parametros en este caso Estados, actualmente solo le paso


uno con la
variable @IdEstado que esta en el Having, el problema es


que depende de
donde lo llame al sp (lo llamo desde vb6) varian los


estados que me hace
falta mostrar, supongamos que lo Estados van del 1 al 8,


deberia pararle
segun el caso por ej: 1,4,5 o 1,2,8 o 2 o 5,7
Esto se puede hacer con el sp q esta a continuacion o hay


q usar sql
dinámico que por cierto nunca lo he usado
MUCHAS GRACIAS.

CREATE PROCEDURE pa_busca_alu_por_curso_estado (@Curso as


char(3), @IdEstado
as smallint)AS
set nocount on
SELECT
A.Apellidos, A.Nombres, A.Legajo, A.IDAlumno,


A.NroDocumento,
A.Curso,A.Domicilio,
A.Piso, A.Dpto, A.FechaNacimiento, A.Telefono, A.E_mail,


B.[Fecha] AS
FechaUltEstado,
E.Descripcion AS Estado, T.Descripcion AS TipoDoc,


L.Descripcion AS
Localidad, P.Descripcion AS Ciclo
FROM Alumnos A
INNER JOIN TipoDocumento T ON A.IDTipoDocumento =


T.IDTipoDocumento
INNER JOIN Localidades L ON A.IDLocalidad = L.IDLocalidad
INNER JOIN AlumnosEstados B ON A.IdAlumno = B.IdAlumno
INNER JOIN Estados E ON B.IdEstado = E.IdEstado
INNER JOIN Curso C ON A.Curso = C.Curso
INNER JOIN CicloEnseñanza P ON P.IDCicloEnseñanza =


C.IDCicloEnseñanza
WHERE B.[Fecha] = (SELECT MAX([Fecha]) FROM
AlumnosEstados D where B.IdAlumno = D.IdAlumno and


A.Curso LIKE @Curso)
GROUP BY A.Apellidos, A.Nombres, A.Legajo, A.IDAlumno,


A.NroDocumento,
A.Curso,
A.Domicilio, A.Piso, A.Dpto, A.FechaNacimiento,


A.Telefono, A.E_mail,
B.[Fecha], E.Descripcion, T.Descripcion, L.Descripcion,


P.Descripcion,
E.IdEstado
HAVING E.IDestado = @IdEstado
ORDER BY ApellidoNombre


.

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