Employee ID, Hours, is3ManDay와 같은 행이있는 Training이라는 테이블이 있습니다. 이 표에는 동일한 직원에 해당하는 여러 레코드가있을 수 있습니다.조건에 따라 테이블의 모든 행을 업데이트하십시오.
나는 각 직원 ID와 관련된 시간을 계산하고 난이
SELECT EMP_ID, SUM(HRS) AS TOTALHRS, is3ManDay
from Training
GROUP BY EMP_ID, is3ManDay
작품처럼 완벽하게 정상적으로을했지만 지금은 is3ManDay를 업데이트 할하려면 다음 중 하나를 예를하거나 각 직원이 가지고있는 총 시간을 기준으로 없음
@Emp_ID int,
@is3ManDay varchar(10)
IF (SELECT SUM(Hrs) FROM Training WHERE Emp_ID = @Emp_ID) >= 36
BEGIN
UPDATE Training
SET is3ManDay = 'Y'
Where Emp_ID = @Emp_ID
END
ELSE
UPDATE Training
SET is3ManDay = 'N'
Where Emp_ID = @Emp_ID
이 것도 잘 작동하지만이 것은 수동으로 @Emp_ID를 변경하고 실용적이지 않은 저장 프로 시저를 실행해야합니다. 이 코드 덩어리에 루프를 포함 시키길 원하지만, @Emp_ID를 제거하면 동일한 값으로 모든 행이 업데이트됩니다. 선택된 ID가 없기 때문입니다.
WHILE (SELECT SUM(HRS) FROM Training) >= 36
BEGIN
UPDATE Training
SET is3ManDay = 'Y'
END
나는 WHILE 문을 시험했지만 나에게 도움이되지 못했습니다.
감사합니다! 나는 이것을 시도 할 것이다. SQL이 강력하다는 것을 전혀 알지 못했습니다. – Marmar