SQL Server - ayuda con Update de "ArmarEquipo"

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 25 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

ayuda con Update de "ArmarEquipo"

Publicado por Alejandro (2 intervenciones) el 23/02/2019 08:10:37
Estoy creando un sistema para una institución estudiantil en el cual ellos desean crear equipos de trabajos el cual esta conformada de un jefe de proyecto, dueño de Idea y colaboradores(de ese proyecto).Cada equipo trabajaran en un proyecto a lo largo de los últimos tres semestres (sexto, séptimo y octavo) en sus asignaturas correspondientes. Por lo que pueden surgir muchos problemas como que un colaborador no obtuvo la nota para pasar al siguiente semestre o en el caso extremo que solo paso el "dueño de la idea" del proyecto. Entonces acá es donde debo generar un Update para quitar a esas personas que repitieron, a excepción del dueño de idea, y darles de baja con un estado booleano false para que no figuren vigentes dentro del equipo.

Entonces debo quitar a todos lo que no figuren junto al "dueño de la idea" (en esa asignatura), para conservar el equipo y mantenerlo vinculado a su proyecto con el fin de a futuro integrar nuevos alumnos al equipo de esa misma asignatura

NOTA: Tengo el IdAsignatura para poder obtener todos los equipos de esa asignatura

Mis tablas Son

Tabla Asignatura
idAsignatura nvarchar(10) PK

Tabla AsignaturaPerfil
idAsignatura nvarchar(10) FK
idPerfil int FK

Tabla Perfil
idPerfil int PK
dni (string) FK
idRol (tinyint) FK

Tabla ArmarEquipo
idEquipo int FK
idPerfil int FK
estado bit
NombreCargo (string)

Tabla Equipo
idEquipo int PK


Agradecería la iluminación de alguien que me pueda ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 3
Ha aumentado su posición en 25 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

ayuda con Update de "ArmarEquipo"

Publicado por Alejandro (2 intervenciones) el 23/02/2019 22:29:00
Hasta Ahora tengo esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ALTER PROCEDURE [dbo].[prox_EquipoLimpiarUpdate]
AS
BEGIN
declare @idSemestre nvarchar (6)
declare @idRol tinyint
 
exec prox_RolNameSelect'Alumno', @idRol OUTPUT
exec pros_SemestreSelect @idSemestre OUTPUT
update ArmarEquipo set estado=0 where exists
(select pe.idPerfil from Perfil as pe
 inner join PerfilAsignatura as pa on pe.idPerfil=pa.idAsignatura
 inner join Asignatura as asi on pa.idAsignatura=asi.idAsignatura
 inner join CargaAcademicaAsignatura  as caa on caa.idAsignatura=asi.idAsignatura
 inner join CargaAcademica as ca on ca.idPrograma=caa.idPrograma
 inner join ArmarEquipo as ae on pe.idPerfil=ae.idPerfil
 inner join TipoCargo as tp on tp.idCargo=ae.idCargo
 where ca.idSemestre=@idSemestre and pe.idRol= @idRol
 and asi.idAsignatura=(select distinct idAsignatura from Asignatura)
 and pe.estado=1 and idEquipo=(select distinct idEquipo from ArmarEquipo)
 and not exists(select idCargo from TipoCargo where nombre='Dueño idea' ))
END

Estuve dándole vueltas al problema y tal ves tenga que ejecutar este procedimiento una vez por semestre para todas las asignaturas(de ese semestre) por lo que hago el inner join hasta la tabla semestre.
*El rol alumno no se si quitarlo o no.
Espero sugerencias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar