none
Ayuda con consulta RRS feed

  • Pregunta

  • Tengo esta consulta que me trae las personas que marcaron que desean hacer un curso denominado "noviazgo" pero lo que me gustaría agregar también son los que marcaron otros cursos, por ejemplo "Finanzas", "Jóvenes". esto está relacionado con respuestas.preguntaid que trae el id de respuesta. En el caso de esta consulta el id respuestas.preguntaid = 1734 corresponde al curso de "noviazgo". Me gustaría agregar este ID derespuesta también "1735", "1736" y "1737" junto con el que está. el de 1735 corresponde a "finanzas", el 1736 corresponde a "jóvenes"
    Gracias!

    select distinct Participantes.nombre,Participantes.apellido,Participantes.Cedula,Participantes.Celular,Preguntas.Descripcion,Respuestas.Contenido,cursoes.nombre curso
    from respuestas, CursoPlaneadoParticipantes, CursoPlaneadoes, Participantes,Cursoes, Preguntas
    where respuestas.preguntaid = 1734 and  FechaInicio BETWEEN '20180317 00:00:00' And '20180317 23:59:59' AND Preguntas.Descripcion = 'Noviazgo'
    and CursoPlaneadoParticipantes.Id = respuestas.CursoPlaneadoParticipanteId
    and CursoPlaneadoes.Id = CursoPlaneadoParticipantes.CursoPlaneadoId
    and Participantes.Id = CursoPlaneadoParticipantes.ParticipanteId
    and Cursoes.Id = CursoPlaneadoes.CursoId
    and Respuestas.Contenido = 'SI'

    miércoles, 9 de mayo de 2018 15:00

Todas las respuestas

  • Hola Pablopy:

    Entiendo que lo que quieres, es que donde pones respuestas.preguntaid= 1734 haya varios valores,

    tal que

    SELECT DISTINCT
           Participantes.nombre,
           Participantes.apellido,
           Participantes.Cedula,
           Participantes.Celular,
           Preguntas.Descripcion,
           Respuestas.Contenido,
           cursoes.nombre curso
    FROM respuestas,
         CursoPlaneadoParticipantes,
         CursoPlaneadoes,
         Participantes,
         Cursoes,
         Preguntas
    WHERE respuestas.preguntaid IN (1734,1735,1736,1737)
          AND FechaInicio BETWEEN '20180317 00:00:00' AND '20180317 23:59:59'
          AND Preguntas.Descripcion = 'Noviazgo'
          AND CursoPlaneadoParticipantes.Id = respuestas.CursoPlaneadoParticipanteId
          AND CursoPlaneadoes.Id = CursoPlaneadoParticipantes.CursoPlaneadoId
          AND Participantes.Id = CursoPlaneadoParticipantes.ParticipanteId
          AND Cursoes.Id = CursoPlaneadoes.CursoId
          AND Respuestas.Contenido = 'SI';

    Un saludo

    miércoles, 9 de mayo de 2018 16:17
  • Hola de nuevo.

    Te hago una sugerencia, a mi creo que me va mejor. Fijate en la sintaxis de tu consulta y lo que cuesta leerla, escrita de otro modo.

    SELECT DISTINCT
           P.nombre,
           P.apellido,
           P.Cedula,
           P.Celular,
           P.Descripcion,
           R.Contenido,
           C.nombre curso
    FROM respuestas as R 
    		inner join CursoPlaneadoParticipantes as CPP on R..CursoPlaneadoParticipanteId = CPP.Id
    		inner join CursoPlaneadoes as CP on CPP.CursoPlaneadoId = CP.Id
    		inner join Participantes as P on P.id = CPP.ParticipanteId
    		inner join Cursoes as C on C.Id = CP.CursoId
    		inner join Preguntas as PR on xxxxx no veo la relacion xxxxx
    WHERE R.preguntaid IN (1734,1735,1736,1737)
          AND FechaInicio BETWEEN '20180317 00:00:00' AND '20180317 23:59:59'
          AND P.Descripcion = 'Noviazgo'
          AND R.Contenido = 'SI';

    Además si observas, en la consulta la tabla preguntas, ¿cual es la relacion?, ¿con quien?. En la tuya no esta definida y se escapa a la vista, al menos de un modo fácil. A lo mejor por eso tienes que hacer uso de distinct....

    Ojo es solo una sugerencia, pero yo creo que aumenta la legibilidad y se te hará más fácil escribir consultas.

    Un saludo

    miércoles, 9 de mayo de 2018 16:27