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
 

Leer las respuestas

#1 Maxi
29/07/2004 - 22:16 | Informe spam
Hola, no entiendo cual es el problema :(, para mi esta bien ese SP, cual es
la pregunta exactamente?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"x-man" escribió en el mensaje
news:
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







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.722 / Virus Database: 478 - Release Date: 18/07/2004

Preguntas similares