declare @temp int,
@temp1 int,
@temp2 int,
@temp3 int,
@temp4 int,
@temp5 int,
@modid int,
@supid int,
@sid varchar(50)
begin tran
select * from StudentSupervisor;
select @temp = count(*) from Students s where s.IsLockedOut = '0' and s.IsGraduated = '0';
select @temp1 = count(*) from staffs st where st.IsLockedOut ='0';
set @temp5 = round(@temp/@temp1,0);
WHILE (select count(*) from students s where s.IsLockedOut ='0' and s.StudentId not in (select ss.StudentId from StudentSupervisor ss where s.StudentId = ss.StudentId and ss.IsApproved = 1)) != 0
BEGIN
select top 1 @sid = s.studentid from students s, StudentSupervisor ss where s.IsLockedOut ='0' and s.StudentId not in (select s.StudentId where s.StudentId = ss.StudentId and ss.IsApproved = 1);
select top 1 @supid = st.Staffid, @modid = st.moderatorid from Staffs st where st.IsLockedOut =0 and Quota <[email protected];
insert into StudentSupervisor
(StudentId,SupervisorId,ModeratorId,IsApproved)
values
(@sid,@supid,@modid,1)
update Staffs set quota +=1 where staffs.StaffID = @supid;
END
select * from StudentSupervisor;
ROLLBACK tran
안녕하세요.이 논리에 상당히 집착하고 있지만 해결책을 찾지 못했지만 밤늦게 일하다가 아무것도 얻지 못했습니다. 지금 상황을 먼저 알려 드리겠습니다. 학생 상담원 표나 학생 수첩 표에는없는 학생 수를 취하고 있습니다 만, 인정되고 있습니다! = 1, 그 다음에, 정원이 총 학생/총계 직원 이하의 직원 수를 취해, 그 후에 학생과 함께 펌프하고 싶습니다 직원들이 학생지도 테이블에 아직 사용할 수있는 동안 .. 내 동적 쿼리에 어떤 문제가 있는지 알려주세요. 감사합니다.while 루프에서 SQL에 테이블에 데이터를 삽입하는 방법
비즈니스 논리에서 루프를 사용하지 말고 저장 프로 시저에서 가능한 한 많이 사용하지 마십시오. –