Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayudaaa :( subconsulta en sql compleja y necesito con urgencia (relacion con vb)

Estas en el tema de Ayudaaa :( subconsulta en sql compleja y necesito con urgencia (relacion con vb) en el foro de .NET en Foros del Web. hola gente les queria consultar cual el es el error en esta sentencia que hice en sql ( a mi me tira el siguiente mensaje ...
  #1 (permalink)  
Antiguo 14/02/2011, 15:46
Avatar de luisito1  
Fecha de Ingreso: junio-2009
Ubicación: Córdoba
Mensajes: 226
Antigüedad: 14 años, 10 meses
Puntos: 2
Pregunta Ayudaaa :( subconsulta en sql compleja y necesito con urgencia (relacion con vb)

hola gente les queria consultar cual el es el error en esta sentencia que hice en sql ( a mi me tira el siguiente mensaje "Sintaxis incorrecta cerca de la palabra clave 'in'."... Les comento que los que quiero hace es modificar los valores que salen el los label (curso,dia, hora y turno) por los que señalo en los combobox) a continuacion les dejo la imagen del formulario, la parte de la base de datos que estoy usando y el el codigo en sql donde me tira error, desde ya muchas gracias y disculpen la molesta pero soy muy nuevo en esto

base de datos (lo que esta en rojo son las concexiones importantes)





formulario en visual





y la consulta que hago en sql




create procedure modificarhorariosprofe

Cita:
@dni int,
@horario varchar(50),
@dia varchar(50),
@turno varchar (50),
@curso varchar (50),
@horariom int,
@diam int,
@turnom int,
@cursom varchar(50)

as
update horariopersonal set horario = @horariom, dia = @diam, turno =@turnom, curso = @cursom
where id_personal = p.id_personal and horario = h.horario and dia = d.dia and turno = t.turno and curso = c.curso
in (select p.id_personal,h.horario, d.dia, t.turno, c.curso from personal p
inner join horariopersonal hp on hp.id_personal = p.id_personal
inner join cursos c on c.curso = hp.curso
inner join turnos t on t.turno = c.turno
inner join horarios h on h.turno = t.turno
inner join dias d on d.dia = hp.dia
where p.nro = @dni and h.descricpion =@horario and d.descripcion = @dia and t.descripcion = @turno and c.descripcion = @curso)

Última edición por luisito1; 14/02/2011 a las 16:00 Razón: para mejorar la info
  #2 (permalink)  
Antiguo 15/02/2011, 07:15
Avatar de luisito1  
Fecha de Ingreso: junio-2009
Ubicación: Córdoba
Mensajes: 226
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Ayudaaa :( subconsulta en sql compleja y necesito con urgencia (relacion c

ya lo resolvi amigos, y se los dejo por si alguna vez tienen un problema con una sub consulta... miren si les tira error y no le encuentran la vuelta lo que pueden hacer es dividir la sub consulta en dos consultas(sera un poco mas de programacion pero les va andar 10 puntos en este caso quedaria asi


1) seleccionamos las label y tranformamos lo que era texto en su id correspondiente


Cita:
ALTER procedure [dbo].[traerhorariopersonal]
@dni int,
@horario varchar(50),
@dia varchar(50),
@turno varchar (50),
@curso varchar (50)

as
select hp.id_personal,hp.horario,hp.dia,hp.turno,hp.curso from personal p
inner join horariopersonal hp on hp.id_personal = p.id_personal
inner join cursos c on c.curso = hp.curso
inner join turnos t on t.turno = c.turno
inner join horarios h on h.turno = t.turno
inner join dias d on d.dia = hp.dia
where p.nro = @dni and h.descripcion =@horario and d.descripcion = @dia and t.descripcion = @turno and c.descripcion = @curso




2) se trae todo las variables tantas las que sacamos en el select anterior (para comparar en la base de datos como las variables que vamos a usar para cambiar



Cita:
create procedure [dbo].[modificarhorariosdocente]
@personal varchar(50),
@horariom int,
@diam int,
@turnom int,
@cursom varchar(50),
@horario int,
@dia int,
@turno int,
@curso varchar (50)

as

update horariopersonal set horario = @horario ,dia =@dia,turno=@turno,curso=@curso
where (id_personal=@personal) and (horario =@horariom) and (dia =@diam) and (turno=@turnom) and (curso=@cursom)





BUENO AMIGOS ESPERO QUE LES HAYA SIDO UTIL.. UN ABRAZO

Etiquetas: consula, sql, subconsulta, update
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:32.