none
Como hacer una consulta que me muestre un valor diferente de los que ya tengo RRS feed

  • Pregunta

  • la cosa es que tengo 3 tablas las cuales son 'tblasignaturas', 'tbldocentes' y 'tbldetDocenteAsignatura' cada docente puede tener mas de una asignatura por eso la tabla 'tbldetDocenteAsignatura' e hice un procedimiento almacenado que me mostrara las asignaturas que tiene ese docente y es haci

    ALTER procedure 'MostrarAsignarurasDelProfesor'
    @documento varchar(11)
    as
    begin
    select
    tblasignaturas.id,
    tblasignaturas.descripcion as ASIGNATURAS
    FROM tblasignaturas,tbldocentes, tbldetprofesorasignatura
    where 
    tblasignaturas.id = tbldetprofesorasignatura.FKid_tblasignatura and
    tbldocentes.documento =tbldetprofesorasignatura.FKdocumento_tblprofesor and
    tbldocentes.documento = @documento
    end
     
    lo que quiero hacer es que cuando vaya a asignarle una nueva asignatura, 
    no aparescan las asignaturas que el ya tiene asignadas que solo aparescan las que estan disponibles para asignarle


    domingo, 20 de noviembre de 2016 20:54

Respuestas

  • KevinPerez,

    Intenta hacer lo siguiente:

    ALTER PROCEDURE dbo.AsignaturasDisponibles
        @documento varchar(11)
    AS
    BEGIN
        SELECT
    	   a.id,
    	   a.descripcion as ASIGNATURAS
        FROM
    	   tblasignaturas a	   
        WHERE
    	   NOT EXISTS (SELECT 1 
    			FROM tbldetprofesorasignatura da 
    				INNER JOIN tbldocentes d ON (da.FKdocumento_tblprofesor = d.documento)
    					AND (d.documento = @documento)
    			WHERE (da.FKid_tblasignatura = a.id))
    END
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    domingo, 20 de noviembre de 2016 21:38

Todas las respuestas

  • KevinPerez,

    Intenta hacer lo siguiente:

    ALTER PROCEDURE dbo.AsignaturasDisponibles
        @documento varchar(11)
    AS
    BEGIN
        SELECT
    	   a.id,
    	   a.descripcion as ASIGNATURAS
        FROM
    	   tblasignaturas a	   
        WHERE
    	   NOT EXISTS (SELECT 1 
    			FROM tbldetprofesorasignatura da 
    				INNER JOIN tbldocentes d ON (da.FKdocumento_tblprofesor = d.documento)
    					AND (d.documento = @documento)
    			WHERE (da.FKid_tblasignatura = a.id))
    END
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    domingo, 20 de noviembre de 2016 21:38
  • Muchas gracias si me funciono
    lunes, 21 de noviembre de 2016 0:22