本帖最后由 taotao_li 于 2016-2-29 18:09 编辑
CREATE OR REPLACE PACKAGE BODY BB_AJCL_GBQ_1 AS
-- AUTHOR :
-- CREATED :
-- PURPOSE :
-- MODIFY : NULL
-- PUBLIC TYPE DECLARATIONS:
PROCEDURE BB_AJCL_GBQ_1(P_TJND VARCHAR2, C OUT CUR) AS
V_JZMJ NUMBER;
CURSOR C_CUR IS
SELECT FGS,MAX(YQT_ID) YQT_ID FROM AJCL04G WHERE TJND = P_TJND GROUP BY FGS;
BEGIN
DELETE TEMP_AJCL_GBQ_1 COMMIT;
----1============已开发==合计============
FOR F IN C_CUR LOOP
INSERT INTO TEMP_AJCL_GBQ_1(
FGS,CLLB,JZMJ,YYDZCLZL,RJQDZCL,YYJSKCCLZL,RJQJSKCCL,YYJJKCCLZL,RJQJJKCCL,CYYJJKCCLZL,
CRJQJJKCCL,YYNCLZL,RJQNCL,YYLJCLZL,RJQLJCL,SYYJJKCCLZL,SRJQJJKCCL,SYYJSKCCLZL,
SRJQJSKCCL,YQT_ID,XH)
SELECT F.FGS,'已开发',B.JZMJ,
A.NXYDZCLZL,A.GQDZCL,B.NXYJSKCCLZL,B.TRQJSKCCL,B.NXYJJKCCLZL,B.TRQJJKCCL,
/*DECODE(NVL(A.NXYJSKCCLZL,0)-NVL(A.NXYJJKCCLZL,0),0,NULL,*/
NVL(B.NXYJSKCCLZL,0)-NVL(B.NXYJJKCCLZL,0)/*)*/,NVL(B.TRQJSKCCL,0)-NVL(B.TRQJJKCCL,0),
NVL(B.NXYNCZL,0)+NVL(D.NXYNCZL,0), NVL(B.TRQNCL,0)+NVL(D.TRQNCL,0),
NVL(B.NXYLCZL,0)+NVL(D.NXYLCZL,0), NVL(B.TRQLJCL,0)+NVL(D.TRQLJCL,0),
NVL(B.NXYJJKCCLZL,0)-(NVL(B.NXYLCZL,0)+NVL(D.NXYLCZL,0)),
NVL(B.TRQJJKCCL,0)-(NVL(B.TRQLJCL,0)+NVL(D.TRQLJCL,0)),
NVL(B.NXYJSKCCLZL,0)-(NVL(B.NXYLCZL,0)+NVL(D.NXYLCZL,0)),
NVL(B.TRQJSKCCL,0)-(NVL(B.TRQLJCL,0)+NVL(D.TRQLJCL,0)),
F.YQT_ID,1
FROM tab_ajcl01 A,
tab_ajcl02 B,
tab_ajcl03 D
WHERE A.FGS = B.FGS(+) AND A.FGS = D.FGS(+);
COMMIT;
----2============未开发==合计============
INSERT INTO TEMP_AJCL_GBQ_1(
FGS,CLLB,JZMJ,YYDZCLZL,RJQDZCL,YYJSKCCLZL,RJQJSKCCL,YYJJKCCLZL,RJQJJKCCL,CYYJJKCCLZL,
CRJQJJKCCL,YYNCLZL,RJQNCL,YYLJCLZL,RJQLJCL,SYYJJKCCLZL,SRJQJJKCCL,SYYJSKCCLZL,
SRJQJSKCCL,YQT_ID,XH)
SELECT F.FGS,'未开发',B.JZMJ,
A.NXYDZCLZL,A.GQDZCL,B.NXYJSKCCLZL,B.TRQJSKCCL,B.NXYJJKCCLZL,B.TRQJJKCCL,
NVL(B.NXYJSKCCLZL,0)-NVL(B.NXYJJKCCLZL,0),NVL(B.TRQJSKCCL,0)-NVL(B.TRQJJKCCL,0),
NVL(B.NXYNCZL,0)+NVL(D.NXYNCLZL,0), NVL(B.TRQNCL,0)+NVL(D.TRQNCL,0),
NVL(B.NXYLCZL,0)+NVL(D.NXYLJCLZL,0), NVL(B.TRQLJCL,0)+NVL(D.TRQLJCL,0),
NVL(B.NXYJJKCCLZL,0)-(NVL(B.NXYLCZL,0)+NVL(D.NXYLJCLZL,0)),
NVL(B.TRQJJKCCL,0)-(NVL(B.TRQLJCL,0)+NVL(D.TRQLJCL,0)),
NVL(B.NXYJSKCCLZL,0)-(NVL(B.NXYLCZL,0)+NVL(D.NXYLJCLZL,0)),
NVL(B.TRQJSKCCL,0)-(NVL(B.TRQLJCL,0)+NVL(D.TRQLJCL,0)),
F.YQT_ID,2
FROM tab_ajcl01 A,
tab_ajcl02 B,
tab_ajcl03 D
WHERE A.FGS = B.FGS(+) AND A.FGS = D.FGS(+);
COMMIT;
V_JZMJ:=0;
SELECT SUM(JZMJ) INTO V_JZMJ FROM tab_ajcl01
WHERE SJLB IN (0,1) AND TJND = P_TJND AND FGS = F.FGS;
----3============合 计==合计============
INSERT INTO TEMP_AJCL_GBQ_1(
FGS,CLLB,JZMJ,YYDZCLZL,RJQDZCL,YYJSKCCLZL,RJQJSKCCL,YYJJKCCLZL,RJQJJKCCL,CYYJJKCCLZL,
CRJQJJKCCL,YYNCLZL,RJQNCL,YYLJCLZL,RJQLJCL,SYYJJKCCLZL,SRJQJJKCCL,SYYJSKCCLZL,
SRJQJSKCCL,YQT_ID,XH)
SELECT F.FGS,'合计',/*SUM(JZMJ)*/V_JZMJ,SUM(YYDZCLZL),SUM(RJQDZCL),
SUM(YYJSKCCLZL),SUM(RJQJSKCCL),SUM(YYJJKCCLZL),SUM(RJQJJKCCL),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYJJKCCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQJJKCCL),0),
SUM(YYNCLZL),SUM(RJQNCL),SUM(YYLJCLZL),SUM(RJQLJCL),
NVL(SUM(YYJJKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJJKCCL),0)-NVL(SUM(RJQLJCL),0),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQLJCL),0),F.YQT_ID,3
FROM TEMP_AJCL_GBQ_1 WHERE FGS=F.FGS;
COMMIT;
END LOOP;
----1============中国==已开发============
INSERT INTO TEMP_AJCL_GBQ_1(
FGS,CLLB,JZMJ,YYDZCLZL,RJQDZCL,YYJSKCCLZL,RJQJSKCCL,YYJJKCCLZL,RJQJJKCCL,CYYJJKCCLZL,
CRJQJJKCCL,YYNCLZL,RJQNCL,YYLJCLZL,RJQLJCL,SYYJJKCCLZL,SRJQJJKCCL,SYYJSKCCLZL,
SRJQJSKCCL,YQT_ID,XH)
SELECT '中国','已开发',SUM(JZMJ),SUM(YYDZCLZL),SUM(RJQDZCL),
SUM(YYJSKCCLZL),SUM(RJQJSKCCL),SUM(YYJJKCCLZL),SUM(RJQJJKCCL),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYJJKCCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQJJKCCL),0),
SUM(YYNCLZL),SUM(RJQNCL),SUM(YYLJCLZL),SUM(RJQLJCL),
NVL(SUM(YYJJKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJJKCCL),0)-NVL(SUM(RJQLJCL),0),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQLJCL),0),0,1
FROM TEMP_AJCL_GBQ_1 WHERE CLLB='已开发';
COMMIT;
----2============中国==未开发============
INSERT INTO TEMP_AJCL_GBQ_1(
FGS,CLLB,JZMJ,YYDZCLZL,RJQDZCL,YYJSKCCLZL,RJQJSKCCL,YYJJKCCLZL,RJQJJKCCL,CYYJJKCCLZL,
CRJQJJKCCL,YYNCLZL,RJQNCL,YYLJCLZL,RJQLJCL,SYYJJKCCLZL,SRJQJJKCCL,SYYJSKCCLZL,
SRJQJSKCCL,YQT_ID,XH)
SELECT '中国石油','未开发',SUM(JZMJ),SUM(YYDZCLZL),SUM(RJQDZCL),
SUM(YYJSKCCLZL),SUM(RJQJSKCCL),SUM(YYJJKCCLZL),SUM(RJQJJKCCL),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYJJKCCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQJJKCCL),0),
SUM(YYNCLZL),SUM(RJQNCL),SUM(YYLJCLZL),SUM(RJQLJCL),
NVL(SUM(YYJJKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJJKCCL),0)-NVL(SUM(RJQLJCL),0),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQLJCL),0),0,2
FROM TEMP_AJCL_GBQ_1 WHERE CLLB='未开发';
COMMIT;
----3============中国==合 计============
INSERT INTO TEMP_AJCL_GBQ_1(
FGS,CLLB,JZMJ,YYDZCLZL,RJQDZCL,YYJSKCCLZL,RJQJSKCCL,YYJJKCCLZL,RJQJJKCCL,CYYJJKCCLZL,
CRJQJJKCCL,YYNCLZL,RJQNCL,YYLJCLZL,RJQLJCL,SYYJJKCCLZL,SRJQJJKCCL,SYYJSKCCLZL,
SRJQJSKCCL,YQT_ID,XH)
SELECT '中国石油','合计',SUM(JZMJ),SUM(YYDZCLZL),SUM(RJQDZCL),
SUM(YYJSKCCLZL),SUM(RJQJSKCCL),SUM(YYJJKCCLZL),SUM(RJQJJKCCL),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYJJKCCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQJJKCCL),0),
SUM(YYNCLZL),SUM(RJQNCL),SUM(YYLJCLZL),SUM(RJQLJCL),
NVL(SUM(YYJJKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJJKCCL),0)-NVL(SUM(RJQLJCL),0),
NVL(SUM(YYJSKCCLZL),0)-NVL(SUM(YYLJCLZL),0),
NVL(SUM(RJQJSKCCL),0)-NVL(SUM(RJQLJCL),0),0,3
FROM TEMP_AJCL_GBQ_1 WHERE CLLB='合计';
COMMIT;
OPEN C FOR
SELECT A.FGS,
CLLB,
NULLIF(JZMJ,0) JZMJ,
NULLIF(RJQDZCL,0) RJQDZCL,
NULLIF(YYDZCLZL,0) YYDZCLZL,
NULLIF(RJQJSKCCL,0) RJQJSKCCL,
NULLIF(YYJSKCCLZL,0) YYJSKCCLZL,
NULLIF(RJQJJKCCL,0) RJQJJKCCL,
NULLIF(YYJJKCCLZL,0) YYJJKCCLZL,
NULLIF(CRJQJJKCCL,0) CRJQJJKCCL,
NULLIF(CYYJJKCCLZL,0) CYYJJKCCLZL,
ROUND(NULLIF(RJQNCL,0),2) RJQNCL,
ROUND(NULLIF(YYNCLZL,0),2) YYNCLZL,
ROUND(NULLIF(RJQLJCL,0),2) RJQLJCL,
ROUND(NULLIF(YYLJCLZL,0),2) YYLJCLZL,
ROUND(NULLIF(SRJQJJKCCL,0),2) SRJQJJKCCL,
ROUND(NULLIF(SYYJJKCCLZL,0),2) SYYJJKCCLZL,
ROUND(NULLIF(SRJQJSKCCL,0),2) SRJQJSKCCL,
ROUND(NULLIF(SYYJSKCCLZL,0),2) SYYJSKCCLZL
FROM TEMP_AJCL_GBQ_1 A,TEMP_FGSMC T WHERE A.FGS = T.FGS(+)
ORDER BY T.XH, A.XH;
END;
END BB_AJCL_GBQ_1;