none
Como realizar consulta select para filtrar personas que no estén junto con el Dueño Idea RRS feed

  • Pregunta

  • 2018Pri	  P1	1	alejandro Dueño idea
    2018Pri	  P1	1	juan	  Jefe Proyecto
    2018Pri   P1	1	gonzalo	  Colaborador
    2018Pri   P1	2	miguel	  Colaborador
    2018Pri	  P1	2	gabriel	  Jefe Proyecto
    2018Pri	  P1	2	nicolas	  Dueño idea
    2018Pri	  P2	1	alejandro Dueño idea
    2018Pri	  P2	1	juan  	  Jefe Proyecto
    2018Pri	  P2	1	gonzalo	  Colaborador
    2018Pri	  P2	2	miguel	  Colaborador
    2018Pri	  P2	2	gabriel	  Jefe Proyecto
    2018Pri	  P2	2	nicolas	  Dueño idea
    2019Oto	  Q2	1	gonzalo	  Colaborador
    2019Oto	  Q2	1	alejandro Dueño idea
    2019Oto	  Q2	2	nicolas   Dueño idea
    2019Oto	  Q4	1	gonzalo	  Colaborador
    2019Oto	  Q4	1	alejandro Dueño idea
    2019Oto	  Q4	2	nicolas	  Dueño idea
    2019Oto	  Q4	1	juan	  Jefe Proyecto
    2019Oto	  Q4	2	gabriel	  Jefe Proyecto
    2019Oto	  Q4	2	miguel	  Colaborador 

    Semestre - Asignatura - N°Equipo - Nombre - Cargo

    De la Imagen anterior tengo el siguiente dilema. Como se aprecia, existen 2 equipos que tienen dos asignaturas a la vez, en el Periodo 2018Pri (Primavera).Cada Equipo esta Conformado de un Dueño idea, un Jefe Proyecto (líder) y un Colaborador(ayudante). Estos equipos deben aprobar estas asignaturas (P1 y P2) para avanzar a la siguiente asignatura del semestre próximo.  En el periodo 2019Oto, los integrantes de los equipos se separaron porque no todos aprobaron la Asignatura P1, pero si lo hicieron para la asignatura P2 pudiendo avanzar a la asignatura Q4. Entonces es acá donde me dicen: quiero que en estas situaciones quites automáticamente a los integrantes que no estén en las mismas asignaturas que el "Dueño de la idea"

    Coloree los Registros para facilitar el análisis

    alguna idea de como realizar esa consulta. 


    martes, 26 de febrero de 2019 7:17

Todas las respuestas

  • Hola  Alejandro Sieveking

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te hago la recomendación de ingresar al siguiente enlace en donde puedes encontrar una posible solución para tu problema.

    http://lineadecodigo.com/sql/consulta-sql-con-filtro-de-datos/

    https://use-the-index-luke.com/es/sql/where/condiciones-complicadas/logica-inteligente

    http://www.manualsqlserver.com/?p=201

    Gracias por usar los foros de MSDN.

    Pedro Alfaro
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 26 de febrero de 2019 16:55
  • Te agradezco la ayuda pero el problema tiene una cierta dificultad.

    Mira!

    (los que no son Dueño de Idea)

    idAsignatura	idEquipo	idPerfil	NombreCargo
    Q2	               2	5	     Colaborador
    Q4	               2	4	      Jefe Proyecto
    Q4	               2	5	     Colaborador
    Q4	               4	7	     Jefe Proyecto
    Q4	               4	8	     Colaborador

    idAsignatura	idEquipo	idPerfil	NombreCargo
    Q2              	2	3	         Dueño Idea
    Q4	                2	3  	        Dueño Idea
    Q2	                4	6	        Dueño Idea
    Q4	                4	6	        Dueño Idea

    Debería poder quitar al idPerfil (4-7-8) y mantener al perfil 5 ya que esta con el dueño de idea en las dos Asignaturas. 

    Es fácil sugerir hacer un COUNT al "Dueño de Idea" y contar las asignaturas que el tiene pero,  los alumnos tienen mas asignaturas  

    llevo dándole vueltas un par de días  para encontrar la solución y la única manera de poder lograrlo es preguntar si el "idPerfil" esta en esas asignaturas donde lo esta el "Dueño Idea" pero como puedo establecer esa declaración.

    Porque si en este caso aplico los Operadores Logicos (ANY o ALL) no podría llegar al resultado. El dueño de idea esta en las dos asignaturas. En este caso el "idPerfil" (4), la operación resultaría verdadero por que el  tiene una de las dos asignaturas donde esta el "dueño de Idea". Con ALL imposible porque un "idAsignatura" no puede ser dos asignaturas a la vez. 

    Exists e IN lo mismo que ANY, al realizar la comprobación, verán que un resultado es correcto y pasara colado.

    Sigo dandole vueltas al problema para obtener ese preciado resultado





    martes, 26 de febrero de 2019 23:39
  • SELECT DISTINCT 
           *
    FROM SeccionEquipo a
    WHERE a.idAsignatura =
    (
        SELECT b.idAsignatura
        FROM SeccionEquipo b
        WHERE b.idPerfil = a.idPerfil
    )
          AND a.idAsignatura =
    (
        SELECT c.idAsignatura
        FROM SeccionEquipo c
        WHERE c.idEquipo = a.idEquipo
              AND c.NombreCargo = 'Dueño idea'
    );

    Una Sentencia como esta se acercaría a lo que quiero realizar , pero es imposible asignarle mas de un valor a las variables.

    Lo que declaro en la consulta es que las asignaturas del perfil sean las mismas que las del dueño de equipo

    Que alguien que me saque de este embrollo para poder continuar

    • Propuesto como respuesta Pedro Alfaro miércoles, 27 de febrero de 2019 15:28
    • Votado como útil Pedro Alfaro miércoles, 27 de febrero de 2019 15:28
    miércoles, 27 de febrero de 2019 6:38