Tengo un procedimeinto con parametros que no puedo ejecutar por favor
ayudenme es el siguiente:
alter procedure dbo.PAAlumnosNormales
(
@area nvarchar(1)=0,
@Grado nvarchar(1)=0,
@Ciclo nvarchar(1)=0,
@Folio nvarchar(10)=0
)
as
declare @sql1 as nvarchar(50),
@sql2 as nvarchar(50),
@sql3 as nvarchar(50),
@sql4 as nvarchar(50)
if (@area=0)
set @sql1= ' [area]>0'
else
set @sql1= ' [area]=' + @area
if (@grado=0)
set @sql2= ' [grado]>0'
else
set @sql2= ' [grado]=' + @Grado
if (@Ciclo =0)
set @sql3= ' dbo.[cuotas colegiaturas].[idciclo]>0'
else
set @sql3= ' dbo.[cuotas colegiaturas].[idciclo]=' + @ciclo
if (@folio =0)
set @sql4= ' [folio]>0'
else
set @sql4= ' and [folio]=' + @folio
print @sql1
print @sql2
print @sql3
print @sql4
begin
SELECT UPPER(dbo.Alumnos.[Apellido Paterno] + ' ' + dbo.Alumnos.[Apellido
Materno] + ' ' + dbo.Alumnos.[Nombre(s)]) AS Alumno,
dbo.Alumnos.[Ficha Alumno], dbo.Alumnos.[Apellido Paterno],
dbo.Alumnos.[Apellido Materno], dbo.Alumnos.[Nombre(s)], dbo.Alumnos.curp,
dbo.Alumnos.Idciclo, dbo.Alumnos.idgrupo, dbo.Alumnos.nacionalidad,
dbo.Alumnos.sexo, dbo.Alumnos.Fechadenacimiento, dbo.Alumnos.edad,
dbo.Alumnos.[lugar de nacimiento], dbo.Alumnos.[No de hermanos
Inscritos], dbo.Alumnos.[escuela donde procede],
dbo.Alumnos.escuelaciudaddeprocedencia,
dbo.Alumnos.escuelaprocedenciatelefono,
dbo.Alumnos.escuelaprocecenciaincorporada,
dbo.Alumnos.escuelaprocedenciapromedio,
dbo.Alumnos.escuelaprocedenciaIdiomaCursado, dbo.Alumnos.[Porcentaje de
Beca],
dbo.Alumnos.[Meses de Colegiatura], dbo.Alumnos.status,
dbo.Alumnos.Tipodealumno, dbo.Alumnos.Idcuota, dbo.Alumnos.foto,
dbo.Alumnos.CuotaInscripcion, dbo.Alumnos.AntiguedadEnColegio,
dbo.Alumnos.upsize_ts, dbo.Alumnos.IdTutor, dbo.Alumnos.AlumnoViveCon,
dbo.Alumnos.IDAlumno, dbo.Alumnos.Tipodealumno AS tipo,
UPPER(ISNULL(dbo.padres.[Calle y Numero], '') + ' ' +
ISNULL(dbo.padres.Colonia, ''))
AS Domicilio, UPPER(ISNULL(dbo.padres.Ciudad, '') + ', ' +
ISNULL(dbo.Estados.nombre, '')) AS cd, dbo.[Cuotas Colegiaturas].Area,
dbo.[Cuotas Colegiaturas].Grado, dbo.[Cuotas
Colegiaturas].CoutaInscripcion, dbo.[Cuotas Colegiaturas].primermes,
dbo.[Cuotas Colegiaturas].[1erColegiaturasePaga], dbo.[Cuotas
Colegiaturas].colegiatura, dbo.Areas.Nombre AS AreaNombre,
STR(dbo.[Cuotas Colegiaturas].Grado) + 'º de ' + dbo.Areas.Nombre AS
GradoArea, dbo.Areas.idarea
FROM dbo.[Cuotas Colegiaturas] INNER JOIN
dbo.Areas ON dbo.[Cuotas Colegiaturas].Area = dbo.Areas.idarea RIGHT
OUTER JOIN
dbo.Alumnos ON dbo.[Cuotas Colegiaturas].idcuota = dbo.Alumnos.Idcuota
LEFT OUTER JOIN
dbo.Estados RIGHT OUTER JOIN
dbo.padres ON dbo.Estados.IDestado = dbo.padres.Estado ON
dbo.Alumnos.IdTutor = dbo.padres.IDTutor
WHERE dbo.Alumnos.Tipodealumno = 'Normal' and @sql1 --and @sql2 and @sql3
and @sql4
ORDER BY Alumno
end
el problema está en el where cuando lo pongo sin parametros ejemplo: WHERE
dbo.Alumnos.Tipodealumno = 'Normal' and [area]=1
funciona perfectamente, pero si lo pongo:
WHERE dbo.Alumnos.Tipodealumno = 'Normal' and @sql1
donde el parametro @sql1 es igual a uno
el error que me manda al querer compilarlo es el siguiente
Mens 4145, Nivel 15, Estado 1, Procedimiento PAAlumnosNormales, Línea 66
Se especificó una expresión no booleana en un contexto donde se esperaba una
condición, cerca de 'ORDER'.
gracias por el apoyo
Leer las respuestas