데이터베이스의 불쾌한 짐승에 대해 필 요한 저장 프로 시저가 있습니다. 응용 프로그램 테이블에서 application_id를 사용하여 테이블 (응용 프로그램)을 반복하고 다른 테이블 (일부는 평균/평균/기타 값)에서 값을 가져와야합니다.T-SQL 루핑을 사용하여 레코드 세트 만들기
지금까지 내가 가진 :
declare @id INT
declare app cursor for
SELECT application_id from application
OPEN app
FETCH NEXT FROM app
INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT a.NAME_LAST, a.NAME_FIRST, ca.status, (SELECT AVG(score) FROM reviews WHERE application_id = @id), (SELECT count(*) FROM reviews WHERE application_id = @id) FROM application a, committee_applications ca WHERE a.application_id = ca.application_id AND a.application_id = @id
FETCH NEXT FROM app INTO @id
END
CLOSE app
DEALLOCATE app
것은 나에게 내가 원하는 결과를 제공,하지만 난이 일을 깨끗한 방법이 확신 해요, 나는 정신 점프를 할 수없는 것 인 오늘 이것을 올바로 수행하십시오. 이것이 나에게 정말로 못 생기는 것처럼 누군가가 이것을하는 더 좋은 방법을 지적 할 수 있습니까?
또한이 값을 임시 테이블에 저장 한 다음 SELECT 문을 하나씩 실행하는 대신 전체 결과를 반환해야하는 것처럼 보입니다.
의견을 보내 주시면 대단히 감사하겠습니다.
감사합니다.
감사합니다. 그 바위는 내가 찾고있는 것입니다. 나는 그것을하는 훨씬 더 깨끗한 방법이 있다는 것을 알았다. 이제이 미친 SQL의 나머지 부분을 해머에 넣어야합니다. –