-- ========================================== -- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.] -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [이미 집행된 발주의뢰서의 금액을 실제 투입금액으로 변경할 경우 사용합니다.] -- 요청자/티켓번호: [요청 부서 / 요청자 또는 이슈 번호를 기록합니다.] -- 데이타베이스 : MS-SQL -- ========================================== declare @por_no char(8), @por_seq int declare @amt decimal(16,4) -- [0] 변경할 데이터 설정 set @por_no = 'P2506009' set @amt = 4698297087 set @por_seq = 1 -- [1] 대상 데이터 검증 (조회) : 발주의뢰서 금액 변경 전 데이터 확인 권장 select * from HPOIMS.dbo.gm_por_detail where por_no = @por_no and por_seq = @por_seq -- [2] 발주의뢰서 금액 변경(수정/삭제 시 주석 처리 후 공유 권장) /* update HPOIMS.dbo.gm_por_detail set unitp = @amt, amt = @amt, w_unitp = @amt, w_amt = @amt, t_amt = @amt where por_no = @por_no and por_seq = @por_seq */ -- [3] 발주의뢰서 금액 변경에 따른 실행예산 투입실적금액 변경(수정/삭제 시 주석 처리 후 공유 권장) /* update HPOIMS.dbo.ys_pbudget set x_amt = (b.soyo_amt+b.input_amt) from HPOIMS.dbo.ys_pbudget a join ( select * from ( select a.pjt_no, a.main, a.sub, a.bud_seq , sum(a.bud_amt) bud_amt , sum(a.bud_x_amt) bud_x_amt , sum(a.bud_e_amt) bud_e_amt , sum(a.soyo_amt) soyo_amt , sum(a.input_amt ) input_amt from ( SELECT pjt_no = a.pjt_no , main = a.main , sub = a.sub , bud_seq = a.bud_seq , closing_yn = ISNULL(a.closing_yn,'N') , bud_amt = ISNULL(a.amt,0) , bud_x_amt = ISNULL(a.x_amt,0) , bud_e_amt = ISNULL(a.e_amt,0) , soyo_amt = 0 , input_amt = 0 FROM HPOIMS.dbo.ys_pbudget a UNION ALL SELECT pjt_no = a.pjt_no , main = a.main , sub = a.sub , bud_seq = a.bud_seq , closing_yn = '' , bud_amt = 0 , bud_x_amt = 0 , bud_e_amt = 0 , soyo_amt = SUM(ISNULL(a.w_amt,0)) , input_amt = 0 FROM HPOIMS.dbo.gm_por_detail a GROUP BY a.pjt_no, a.main, a.sub, a.bud_seq UNION ALL SELECT pjt_no = a.pjt_no , main = a.main , sub = a.sub , bud_seq = a.bud_seq , closing_yn = '' , bud_amt = 0 , bud_x_amt = 0 , bud_e_amt = 0 , soyo_amt = 0 , input_amt = SUM(ISNULL(a.amt,0)) FROM HPOIMS.dbo.ys_direct_cost a GROUP BY a.pjt_no, a.main, a.sub, a.bud_seq ) a GROUP BY a.pjt_no, a.main, a.sub, a.bud_seq ) a where a.bud_x_amt <> (a.soyo_amt+a.input_amt) ) b on a.pjt_no = b.pjt_no and a.main = b.main and a.sub = b.sub and a.bud_seq = b.bud_seq and a.pjt_no like '%' and a.main <> 'AB00' and a.curr = 'WON' and ROUND(isnull(a.x_amt,0)*a.base_rate,0) <> (b.soyo_amt+b.input_amt) */