none
buscar valores que no coincidan RRS feed

  • Pregunta

  • Contrato_Tabla

    Num_Contrato     Num_Estudiante    Num_Matricula     Termino

        10                        2020                     15                  1614

        11                        3030                     16                  1614

    Matricula_Tabla

    Num_Estudiante     Num_Matricula     Termino

         2020                        15                1614

         3030                        16                1614

         3030                        17                1614

         4040                        18                1614

    quiero que me salgan en la consulta todos los estudiantes que no tienen contrato en su numero maximo de matricula para un mismo termino academic el estudiante 3030 en su matricula 17 no tiene contrato (aunque si la tiene en la 16) y el estudiante 4040 no tiene contrato, quiero que salgan solo los que no tengan contrato tomando en consideracion el termino y el numero maximo de su matricula

    martes, 11 de abril de 2017 22:04

Respuestas

  • ...Quiero que me salgan en la consulta todos los estudiantes que no tienen contrato en su numero máximo de matricula para un mismo termino academico, el estudiante 3030 en su matricula 17 no tiene contrato (aunque si la tiene en la 16) y el estudiante 4040 no tiene contrato, quiero que salgan solo los que no tengan contrato tomando en consideración el termino y el numero máximo de su matricula

    WITH T AS
    (
        SELECT
    	   m.Num_Estudiante, m.Termino, MAX(m.Num_Matricula) AS [Num_Matricula]
        FROM
    	   Matricula m
        GROUP BY
    	   m.Num_Estudiante, m.Termino
    )
    SELECT
        t1.Num_Estudiante, t1.Termino, t1.Num_Matricula
    FROM
        T t1 
    WHERE
        NOT EXISTS (SELECT 1 FROM Contrato c 
    			 WHERE t1.Num_Estudiante = c.Num_Estudiante
    				AND t1.Termino = c.Termino
    				AND t1.Num_Matricula = c.Num_Matricula)
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta HunchbackMVP miércoles, 12 de abril de 2017 12:45
    • Marcado como respuesta Efrain Diaz miércoles, 12 de abril de 2017 13:46
    martes, 11 de abril de 2017 22:15
  • Efrain,

    Al menos intenta por ti mismo resolver esa ultima parte que no creo sea tan dificil.

    Agreaga la clausula WHERE a la CTE para que filtre por un termino en especifico (parametro o variable).


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas


    • Editado HunchbackMVP miércoles, 12 de abril de 2017 12:45
    • Marcado como respuesta Efrain Diaz miércoles, 12 de abril de 2017 13:46
    miércoles, 12 de abril de 2017 12:45

Todas las respuestas

  • ...Quiero que me salgan en la consulta todos los estudiantes que no tienen contrato en su numero máximo de matricula para un mismo termino academico, el estudiante 3030 en su matricula 17 no tiene contrato (aunque si la tiene en la 16) y el estudiante 4040 no tiene contrato, quiero que salgan solo los que no tengan contrato tomando en consideración el termino y el numero máximo de su matricula

    WITH T AS
    (
        SELECT
    	   m.Num_Estudiante, m.Termino, MAX(m.Num_Matricula) AS [Num_Matricula]
        FROM
    	   Matricula m
        GROUP BY
    	   m.Num_Estudiante, m.Termino
    )
    SELECT
        t1.Num_Estudiante, t1.Termino, t1.Num_Matricula
    FROM
        T t1 
    WHERE
        NOT EXISTS (SELECT 1 FROM Contrato c 
    			 WHERE t1.Num_Estudiante = c.Num_Estudiante
    				AND t1.Termino = c.Termino
    				AND t1.Num_Matricula = c.Num_Matricula)
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta HunchbackMVP miércoles, 12 de abril de 2017 12:45
    • Marcado como respuesta Efrain Diaz miércoles, 12 de abril de 2017 13:46
    martes, 11 de abril de 2017 22:15
  • William gracias como siempre pero esa consulta me da como resultado todos los estudiantes de todos los terminus y necesito que sea por terminus en particulares osea where Termino= al que sea 1614 o 1615 o el que sea, gracias
    miércoles, 12 de abril de 2017 11:41
  • Efrain,

    Al menos intenta por ti mismo resolver esa ultima parte que no creo sea tan dificil.

    Agreaga la clausula WHERE a la CTE para que filtre por un termino en especifico (parametro o variable).


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas


    • Editado HunchbackMVP miércoles, 12 de abril de 2017 12:45
    • Marcado como respuesta Efrain Diaz miércoles, 12 de abril de 2017 13:46
    miércoles, 12 de abril de 2017 12:45