BETWEEN y nulos

08/02/2005 - 18:13 por Matías | Informe spam
Hola a todos, tengo un sp y utilizo 'A.Curso BETWEEN @DesCurso AND
@HasCurso' segun un rango de cursos que selecciono el usuario, pero no se
como puedo hacer para que tambien me traiga los registros donde A.Curso sea
NULL o vacio. Estube probando agregándole un 'OR A.CURSO IS NULL' pero no me
funciona. Pego el sp:

CREATE PROCEDURE pa_select_estados_alum(@PreInsc as smallint, @Regular as
smallint, @LibreAbandono as smallint, @LibreInasist as smallint,
@LibreSancion as smallint, @LibrePase as smallint, @EgresadoConMat as
smallint, @EgresadoSinMat as smallint, @DesCurso as char(3), @HasCurso as
char(3)) AS

SELECT A.Apellidos+', '+ A.Nombres as ApellidoNombre, A.Legajo, A.IDAlumno,
A.NroDocumento, A.Curso,
A.Sexo, A.Domicilio, A.Piso, A.Dpto, A.LugarNacimiento,
A.FechaNacimiento, A.Telefono, A.E_mail, A.NroLibro, A.NroFolio,
A.PadreMadreTutor AS PMoT, AE.[Fecha] AS FechaUltEstado, E.Descripcion AS
Estado, T.Descripcion AS TipoDoc
FROM Alumnos A
INNER JOIN TipoDocumento T ON A.IDTipoDocumento = T.IDTipoDocumento
INNER JOIN AlumnosEstados AE ON A.IdAlumno = AE.IdAlumno
INNER JOIN Estados E ON AE.IdEstado = E.IdEstado
WHERE AE.[Fecha] = (SELECT MAX([Fecha]) FROM
AlumnosEstados D WHERE AE.IdAlumno = D.IdAlumno AND A.Curso BETWEEN
@DesCurso AND @HasCurso)
GROUP BY A.Apellidos, A.Nombres, A.Legajo, A.IDAlumno, A.NroDocumento,
A.Curso,
A.Sexo, A.Domicilio, A.Piso, A.Dpto, A.LugarNacimiento,
A.FechaNacimiento, A.Telefono, A.E_mail, A.NroLibro, A.NroFolio,
A.PadreMadreTutor, AE.[Fecha], E.Descripcion, E.IdEstado, T.Descripcion
HAVING E.IdEstado = ISNULL (@PreInsc, E.IdEstado) OR E.IdEstado = ISNULL
(@Regular, E.IdEstado) OR E.IdEstado = ISNULL (@LibreAbandono, E.IdEstado)
OR E.IdEstado = ISNULL (@LibreInasist, E.IdEstado) OR E.IdEstado = ISNULL
(@LibreSancion, E.IdEstado) OR E.IdEstado = ISNULL (@LibrePase, E.IdEstado)
OR E.IdEstado = ISNULL (@EgresadoConMat, E.IdEstado) OR E.IdEstado = ISNULL
(@EgresadoSinMat, E.IdEstado)
ORDER BY E.IdEstado, A.Apellidos, A.Curso

Saludos y MIL Gracias desde Córdoba Argentina.

Preguntas similare

Leer las respuestas

#1 Rodrigo
08/02/2005 - 19:03 | Informe spam
Tengo la impresion que el problema es de parentesis. Te
sugiero colocar:

WHERE AE.[Fecha] = (SELECT MAX([Fecha])
FROM AlumnosEstados D
WHERE AE.IdAlumno = D.IdAlumno AND
((A.Curso BETWEEN @DesCurso AND @HasCurso) OR A.Curso is
Null)

o bien

WHERE AE.[Fecha] = (SELECT MAX([Fecha])
FROM AlumnosEstados D
WHERE AE.IdAlumno = D.IdAlumno AND
((A.Curso >= @DesCurso AND A.Curso <= @HasCurso) OR
A.Curso is Null)

Interesante hubiese sido que colocaras la salida que te
daba.


Hola a todos, tengo un sp y utilizo 'A.Curso BETWEEN


@DesCurso AND
@HasCurso' segun un rango de cursos que selecciono el


usuario, pero no se
como puedo hacer para que tambien me traiga los registros


donde A.Curso sea
NULL o vacio. Estube probando agregándole un 'OR A.CURSO


IS NULL' pero no me
funciona.


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