쿼리 추가 및 수정
This commit is contained in:
406
쿼리/Template/실행예산투입실적금액수정하기.sql
Normal file
406
쿼리/Template/실행예산투입실적금액수정하기.sql
Normal file
@@ -0,0 +1,406 @@
|
||||
-- ==========================================
|
||||
-- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.]
|
||||
-- 작 성 자: [실행자 이름을 기록합니다.]
|
||||
-- 작업목적: [실행예산 소요예산 = 구매청구서 금액 + 직접비 금액 비교하여 다른 것 조회하여 내용 확인 후 수정합니다.]
|
||||
-- 요청자/티켓번호: [사업부서의 요청 혹은 주기적으로 실행하여 데이터를 일치 시킵니다.]
|
||||
-- ==========================================
|
||||
|
||||
-- [1] 원화인 경우 실행예산 소요예산 = 구매청구서 금액 + 직접비 금액 비교하여 다른 것 조회하기
|
||||
select
|
||||
a.*
|
||||
, a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) x_amt
|
||||
, (b.soyo_amt+b.input_amt)
|
||||
, a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) - (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 = round(ISNULL(a.amt*a.base_rate,0),0)
|
||||
, bud_x_amt = round(ISNULL(a.x_amt*a.base_rate,0),0)
|
||||
, bud_e_amt = round(ISNULL(a.e_amt*a.base_rate,0),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.amt,0)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END)
|
||||
, soyo_amt = SUM(ISNULL(a.w_amt,0))
|
||||
, input_amt = 0
|
||||
FROM
|
||||
HPOIMS.dbo.gm_por_detail a
|
||||
left outer join
|
||||
HPOIMS.dbo.ys_project_rate b
|
||||
on
|
||||
a.pjt_no = b.pjt_no and a.curr = b.curr
|
||||
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)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END)
|
||||
, input_amt = SUM(ISNULL(a.amt,0))
|
||||
FROM
|
||||
HPOIMS.dbo.ys_direct_cost a
|
||||
left outer join
|
||||
HPOIMS.dbo.ys_project_rate b
|
||||
on
|
||||
a.pjt_no = b.pjt_no and a.curr = b.curr
|
||||
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.base_rate) <> (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)
|
||||
|
||||
-- and a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0)
|
||||
-- <>
|
||||
-- (b.soyo_amt+b.input_amt)
|
||||
-- and abs((a.x_amt*a.base_rate) - (b.soyo_amt+b.input_amt)) > 1
|
||||
-- and a.item_name = 'ManDay 지원비'
|
||||
|
||||
-- [2] 외자인 경우 실행예산 소요예산 = 구매청구서 금액 + 직접비 금액 비교하여 다른 것 조회하기
|
||||
select
|
||||
a.*
|
||||
, round(a.x_amt*a.base_rate,-1) + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) x_amt
|
||||
, (b.soyo_amt+b.input_amt)
|
||||
, a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) - (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 = round(ISNULL(a.amt*a.base_rate,0),0)
|
||||
, bud_x_amt = round(ISNULL(a.x_amt*a.base_rate,0),0)
|
||||
, bud_e_amt = round(ISNULL(a.e_amt*a.base_rate,0),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.amt,0)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END)
|
||||
, soyo_amt = SUM(ISNULL(a.w_amt,0))
|
||||
, input_amt = 0
|
||||
FROM
|
||||
HPOIMS.dbo.gm_por_detail a
|
||||
left outer join
|
||||
HPOIMS.dbo.ys_project_rate b
|
||||
on
|
||||
a.pjt_no = b.pjt_no and a.curr = b.curr
|
||||
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)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END)
|
||||
, input_amt = SUM(ISNULL(a.amt,0))
|
||||
FROM
|
||||
HPOIMS.dbo.ys_direct_cost a
|
||||
left outer join
|
||||
HPOIMS.dbo.ys_project_rate b
|
||||
on
|
||||
a.pjt_no = b.pjt_no and a.curr = b.curr
|
||||
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.base_rate) <> (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 'V%'
|
||||
and a.main <> 'AB00'
|
||||
-- and a.curr = 'WON'
|
||||
-- and a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0)
|
||||
-- <>
|
||||
-- (b.soyo_amt+b.input_amt)
|
||||
and round(a.x_amt*a.base_rate, -1) + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) <> (b.soyo_amt+b.input_amt)
|
||||
and abs(a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) - (b.soyo_amt+b.input_amt)) > 1
|
||||
-- and a.item_name = 'ManDay 지원비'
|
||||
|
||||
/*
|
||||
|
||||
-- 실행예산 소요예산 = 구매청구서 금액 + 직접비 금액 비교하여 다른 것 업데이트 하기
|
||||
begin tran
|
||||
|
||||
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)
|
||||
|
||||
commit tran
|
||||
|
||||
rollback tran
|
||||
|
||||
|
||||
begin tran
|
||||
|
||||
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)
|
||||
|
||||
-- and a.pjt_no like 'B%'
|
||||
and ROUND(a.x_amt*a.base_rate,0) <> (b.soyo_amt+b.input_amt)
|
||||
|
||||
-- and a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0)
|
||||
-- <>
|
||||
-- (b.soyo_amt+b.input_amt)
|
||||
|
||||
rollback tran
|
||||
*/
|
||||
Reference in New Issue
Block a user