추가 및 수정
This commit is contained in:
150
쿼리/Template/본예산승인오류검토하기.sql
Normal file
150
쿼리/Template/본예산승인오류검토하기.sql
Normal file
@@ -0,0 +1,150 @@
|
||||
-- ==========================================
|
||||
-- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.]
|
||||
-- 작 성 자: [실행자 이름을 기록합니다.]
|
||||
-- 작업목적: [예산승인오류가 발생했을 시 확인합니다.]
|
||||
-- 요청자/티켓번호: [예산승인부서의 요청시 검토하는 용도입니다.]
|
||||
-- 데이타베이스 : MS-SQL
|
||||
-- ==========================================
|
||||
|
||||
declare @pjt_no CHAR(8)
|
||||
, @bud_gbn CHAR(1)
|
||||
, @chasu TINYINT
|
||||
, @update_id CHAR(7)
|
||||
, @change_why_gbn CHAR(7)
|
||||
, @cnt int
|
||||
|
||||
DECLARE @tmp_pbudget TABLE
|
||||
(
|
||||
pjt_no CHAR(8)
|
||||
, main CHAR(4)
|
||||
, sub CHAR(4)
|
||||
, bud_seq INT
|
||||
, x_amt DECIMAL
|
||||
)
|
||||
|
||||
select @pjt_no = 'V172T305', @bud_gbn='M'
|
||||
|
||||
-- POR
|
||||
INSERT
|
||||
@tmp_pbudget
|
||||
SELECT
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq, isnull(SUM(b.amt),0) x_amt -- SUM(b.w_amt)
|
||||
FROM
|
||||
HPOIMS.dbo.gm_por_detail a
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
SELECT
|
||||
por_no, por_seq, SUM(amt) amt, SUM(w_amt) w_amt , SUM(qty) qty
|
||||
FROM
|
||||
HPOIMS.dbo.gm_po_detail
|
||||
GROUP BY
|
||||
por_no, por_seq
|
||||
)b
|
||||
ON
|
||||
a.por_no = b.por_no and a.por_seq = b.por_seq
|
||||
WHERE
|
||||
a.pjt_no = @pjt_no
|
||||
-- AND a.qty = b.qty
|
||||
AND a.w_amt > b.w_amt
|
||||
GROUP BY
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq
|
||||
|
||||
INSERT
|
||||
@tmp_pbudget
|
||||
SELECT
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq, isnull(SUM(b.w_amt),0) x_amt -- SUM(b.w_amt)
|
||||
FROM
|
||||
HPOIMS.dbo.gm_por_detail a
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
SELECT
|
||||
por_no, por_seq, SUM(amt) amt, SUM(w_amt) w_amt , SUM(qty) qty
|
||||
FROM
|
||||
HPOIMS.dbo.gm_po_detail
|
||||
GROUP BY
|
||||
por_no, por_seq
|
||||
)b
|
||||
ON
|
||||
a.por_no = b.por_no AND a.por_seq = b.por_seq
|
||||
WHERE
|
||||
a.pjt_no = @pjt_no
|
||||
-- AND a.qty = b.qty
|
||||
AND a.w_amt <= b.w_amt
|
||||
GROUP BY
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq
|
||||
|
||||
INSERT
|
||||
@tmp_pbudget
|
||||
SELECT
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq, isnull(SUM(b.w_amt),0) x_amt
|
||||
FROM
|
||||
HPOIMS.dbo.gm_por_detail a
|
||||
LEFT OUTER JOIN
|
||||
(
|
||||
SELECT
|
||||
por_no, por_seq, SUM(amt) amt, SUM(w_amt) w_amt , SUM(qty) qty
|
||||
FROM
|
||||
HPOIMS.dbo.gm_po_detail
|
||||
GROUP BY
|
||||
por_no, por_seq
|
||||
)b
|
||||
ON
|
||||
a.por_no = b.por_no AND a.por_seq = b.por_seq
|
||||
WHERE
|
||||
a.pjt_no = @pjt_no
|
||||
AND b.w_amt IS NULL
|
||||
GROUP BY
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq
|
||||
|
||||
|
||||
-- 직접비
|
||||
INSERT
|
||||
@tmp_pbudget
|
||||
SELECT
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq, SUM(a.amt*a.base_rate) x_amt
|
||||
FROM
|
||||
HPOIMS.dbo.ys_direct_cost a
|
||||
WHERE
|
||||
a.pjt_no = @pjt_no
|
||||
GROUP BY
|
||||
a.pjt_no, a.main, a.sub, a.bud_seq
|
||||
|
||||
|
||||
SELECT
|
||||
@cnt = COUNT(*)
|
||||
FROM
|
||||
(
|
||||
SELECT pjt_no, main, sub, bud_seq, SUM(x_amt) x_amt FROM @tmp_pbudget GROUP BY pjt_no, main, sub, bud_seq
|
||||
)b
|
||||
LEFT OUTER JOIN
|
||||
HPOIMS.dbo.ys_mbudget a
|
||||
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.bud_gbn = @bud_gbn -- 'M'
|
||||
WHERE
|
||||
b.pjt_no = @pjt_no
|
||||
AND ISNULL(a.w_amt,0) < ISNULL(b.x_amt,0)
|
||||
AND b.main+b.sub not in ('AB33001', 'AB33002') -- 원가안분 인 경우에는 제외(2011.05.04)
|
||||
|
||||
SELECT
|
||||
b.pjt_no, b.main, b.sub, b.bud_seq, ISNULL(a.w_amt,0) m_amt, ISNULL(b.x_amt,0) x_amt
|
||||
FROM
|
||||
(
|
||||
SELECT pjt_no, main, sub, bud_seq, SUM(x_amt) x_amt FROM @tmp_pbudget GROUP BY pjt_no, main, sub, bud_seq
|
||||
)b
|
||||
LEFT OUTER JOIN
|
||||
HPOIMS.dbo.ys_mbudget a
|
||||
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.bud_gbn = @bud_gbn -- 'M'
|
||||
WHERE
|
||||
b.pjt_no = @pjt_no
|
||||
AND ISNULL(a.w_amt,0) < ISNULL(b.x_amt,0)
|
||||
AND b.main+b.sub not in ('AB33001', 'AB33002') -- 원가안분 인 경우에는 제외(2011.05.04)
|
||||
|
||||
Reference in New Issue
Block a user