Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
consulta mysql que no logro entender

bueno aquí molestándolos un poco resulta que tengo las siguientes tablas carga académica y horario sus estructuras son las siguientes

ahora tengo la siguiente tabla carga academica y quiero seleccionar del horario solo las materias en las que un determinado docente dicta clases osea el horario por docente quiero que me muestre en el horario de lunes a viernes y en que horas le toca dar clases al profesor seleccionado, en carga académica temgo la informacion de las materias dictadas por cada profesor y en horario tengo la distribucion de las materias durante las semana, lo que quiero q me traiga la consulta son las materias que dicta el profesor durante la semana ubicadas en el horario que ya esta definido,





con esta consulta que coloco a continuación me trae las amterias de dicho profesor para el dia miercoles, pero tengo dos problemas el primero no se como hacerle para que me los traiga para todos los dias y segundo, me trae las materias que no corresponden al profesor no se como encarar este problema espero sugerencias
Código SQL [-]
SELECT  horario.Hora,
        IFNULL(LU.nombre_asignatura,'RECREO'),
        IFNULL(MA.nombre_asignatura,'RECREO'),
        IFNULL(MI.nombre_asignatura,'RECREO'),
        IFNULL(JU.nombre_asignatura,'RECREO'),
        IFNULL(VI.nombre_asignatura,'RECREO'),
        IFNULL(SA.nombre_asignatura,'RECREO'),
        IFNULL(DM.nombre_asignatura,'RECREO')

FROM cargaacademica,horario

LEFT JOIN asignaturas AS LU ON LU.id_asignatura = horario.lunes
LEFT JOIN asignaturas AS MA ON MA.id_asignatura = horario.martes
LEFT JOIN asignaturas AS MI ON MI.id_asignatura = horario.miercoles
LEFT JOIN asignaturas AS JU ON JU.id_asignatura = horario.jueves
LEFT JOIN asignaturas AS VI ON VI.id_asignatura = horario.viernez
LEFT JOIN asignaturas AS SA ON SA.id_asignatura = horario.sabado
LEFT JOIN asignaturas AS DM ON DM.id_asignatura = horario.domingo

WHERE horario.id_sede = cargaacademica.id_sede AND
      horario.id_jornada = cargaacademica.id_jornada AND
      horario.id_grado = cargaacademica.id_grado AND
      horario.Grupo = cargaacademica.grupo AND
      horario.miercoles = cargaacademica.id_asignatura AND
      cargaacademica.cedula = '383889'

gracias de antemano gulder
Responder Con Cita
  #2  
Antiguo 13-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
hola foro como estan con esta consulta logro seleccionar parte de lo que quiero, pero no me lo hace completo pues estoy teniendo problemas puesto que en el dia martes el rpofesor da la materia con el id 117 pero no me muetsra la hora y me debe mostrar dos veces el id 117 puesto que el dia martes da dos horas de esa materia pero no me lo esta mosmtrando, la cedula se refiere al id del docente para este caso estoy haciendolo para el docente con id = 383889 y lo que me arroja la consulta que coloco a continuacion es lo siguiente

Código SQL [-]
SELECT  lu.Hora,lu.Inicio,lu.fin,lu.lunes,ma.martes
FROM cargaacademica 
LEFT JOIN horario AS lu on cargaacademica.id_asignatura = lu.lunes
LEFT JOIN horario AS ma on cargaacademica.id_asignatura = ma.martes
WHERE cargaacademica.cedula='383889'


esto es lo que quiero que me arroje la consulta las materias ubicadas en el horario por profesor, osea las que dicta cada profesor

Responder Con Cita
  #3  
Antiguo 14-02-2012
Avatar de gulder
gulder gulder is offline
Miembro
 
Registrado: abr 2005
Ubicación: colombia-sucre
Posts: 384
Poder: 20
gulder Va por buen camino
hola foro como estan

Código SQL [-]
SELECT  horario.Hora,horario.Inicio,horario.fin,horario.lunes,horario.martes,horario.miercoles
FROM horario 
LEFT JOIN cargaacademica AS lu on lu.id_asignatura = horario.lunes 
LEFT JOIN cargaacademica AS ma on ma.id_asignatura = horario.martes 
LEFT JOIN cargaacademica AS mi on mi.id_asignatura = horario.miercoles 
WHERE lu.cedula='383889' OR ma.cedula='383889' OR mi.cedula='383889'


con la siguiente consulta hace la mitad del trabajo lo que hace mal es que me trae el resto de elementos de la fila de registros, como hago para que no trajera estos elementos, que los omita o los ponga a null miren la siguiente imagen y se dan cuenta de lo que digo cordial saludo


Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
no logro conexion MOCOSO07 Conexión con bases de datos 3 27-09-2010 21:47:27
No logro group by ebeltete Firebird e Interbase 3 18-05-2010 07:18:07
Sigo sin entender el error... gandalf_27 C++ Builder 1 11-06-2006 16:35:46
Entender lo que pasa con mis datos IVAND Conexión con bases de datos 6 03-02-2006 14:23:53
Entender una sentencia Renees Varios 5 02-09-2005 19:35:01


La franja horaria es GMT +2. Ahora son las 16:22:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi