procedure UPDATE_SAME_PROVICE(P_DATE DATE) IS
PROVICE_NAME varchar2(100) default '江苏';
O_TYPE_357 varchar2(100) default 'PV-PR357';
O_TYPE_42 varchar2(100) default 'PV-PR42';
SALE_QTY_50 NUMBER default 0;
SALE_AMT_50 NUMBER default 0;
SALE_WEIGHT_50 NUMBER default 0;
SALE_PRICE_50 NUMBER default 0;
BUD_SALE_QTY_50 NUMBER default 0;
BUD_ACH_RATE_50 NUMBER default 0;
LM_SALE_QTY_50 NUMBER default 0;
LM_SALE_WGH_50 NUMBER default 0;
LM_SALE_AMT_50 NUMBER default 0;
LM_SALE_PRICE_50 NUMBER default 0;
LM_ACH_RATE_50 NUMBER default 0;
LY_SALE_QTY_50 NUMBER default 0;
LY_SALE_WGH_50 NUMBER default 0;
LY_SALE_AMT_50 NUMBER default 0;
LY_SALE_PRICE_50 NUMBER default 0;
LY_ACH_RATE_50 NUMBER default 0;
SALE_QTY_51 NUMBER default 0;
SALE_AMT_51 NUMBER default 0;
SALE_WEIGHT_51 NUMBER default 0;
SALE_PRICE_51 NUMBER default 0;
BUD_SALE_QTY_51 NUMBER default 0;
BUD_ACH_RATE_51 NUMBER default 0;
LM_SALE_QTY_51 NUMBER default 0;
LM_SALE_WGH_51 NUMBER default 0;
LM_SALE_AMT_51 NUMBER default 0;
LM_SALE_PRICE_51 NUMBER default 0;
LM_ACH_RATE_51 NUMBER default 0;
LY_SALE_QTY_51 NUMBER default 0;
LY_SALE_WGH_51 NUMBER default 0;
LY_SALE_AMT_51 NUMBER default 0;
LY_SALE_PRICE_51 NUMBER default 0;
LY_ACH_RATE_51 NUMBER default 0;
SALE_QTY_52 NUMBER default 0;
SALE_AMT_52 NUMBER default 0;
SALE_WEIGHT_52 NUMBER default 0;
SALE_PRICE_52 NUMBER default 0;
BUD_SALE_QTY_52 NUMBER default 0;
BUD_ACH_RATE_52 NUMBER default 0;
LM_SALE_QTY_52 NUMBER default 0;
LM_SALE_WGH_52 NUMBER default 0;
LM_SALE_AMT_52 NUMBER default 0;
LM_SALE_PRICE_52 NUMBER default 0;
LM_ACH_RATE_52 NUMBER default 0;
LY_SALE_QTY_52 NUMBER default 0;
LY_SALE_WGH_52 NUMBER default 0;
LY_SALE_AMT_52 NUMBER default 0;
LY_SALE_PRICE_52 NUMBER default 0;
LY_ACH_RATE_52 NUMBER default 0;
SALE_QTY_ZZ NUMBER default 0;
SALE_AMT_ZZ NUMBER default 0;
SALE_WEIGHT_ZZ NUMBER default 0;
SALE_PRICE_ZZ NUMBER default 0;
BUD_SALE_QTY_ZZ NUMBER default 0;
BUD_ACH_RATE_ZZ NUMBER default 0;
LM_SALE_QTY_ZZ NUMBER default 0;
LM_SALE_WGH_ZZ NUMBER default 0;
LM_SALE_AMT_ZZ NUMBER default 0;
LM_SALE_PRICE_ZZ NUMBER default 0;
LM_ACH_RATE_ZZ NUMBER default 0;
LY_SALE_QTY_ZZ NUMBER default 0;
LY_SALE_WGH_ZZ NUMBER default 0;
LY_SALE_AMT_ZZ NUMBER default 0;
LY_SALE_PRICE_ZZ NUMBER default 0;
LY_ACH_RATE_ZZ NUMBER default 0;
O_CODE_50 varchar2(100) default '50';
O_CODE_51 varchar2(100) default '51';
O_CODE_52 varchar2(100) default '52';
O_CODE_ZZ varchar2(100) default 'ZZ';
begin
---------50----------
select
nvl(sum(SALE_QTY),0) , nvl(sum(SALE_AMT),0) ,
nvl(sum(SALE_WEIGHT),0) ,nvl(sum(LM_SALE_QTY),0) ,
nvl(sum(LM_SALE_AMT),0) ,nvl(sum( LM_SALE_WGH),0) ,
nvl(sum(LY_SALE_QTY),0) ,nvl(sum(LY_SALE_AMT),0) ,
nvl(sum(LY_SALE_WGH),0) ,
NVL(SUM(BUD_SALE_QTY),0)
into SALE_QTY_50,SALE_AMT_50,SALE_WEIGHT_50,LM_SALE_QTY_50,
LM_SALE_AMT_50,LM_SALE_WGH_50,LY_SALE_QTY_50,LY_SALE_AMT_50,
LY_SALE_WGH_50,BUD_SALE_QTY_50
from WEIXIN_PIG_DRAFT
where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_50
And O_Type in(O_TYPE_357,O_TYPE_42);
dbms_output.put_line(SALE_QTY_50); --输出并换行
---------------------51----------------------------------
select
nvl(sum(SALE_QTY),0) , nvl(sum(SALE_AMT),0) ,
nvl(sum(SALE_WEIGHT),0) ,nvl(sum(LM_SALE_QTY),0) ,
nvl(sum(LM_SALE_AMT),0) ,nvl(sum( LM_SALE_WGH),0) ,
nvl(sum(LY_SALE_QTY),0) ,nvl(sum(LY_SALE_AMT),0) ,
nvl(sum(LY_SALE_WGH),0),
NVL(SUM(BUD_SALE_QTY),0)
into SALE_QTY_51,SALE_AMT_51,SALE_WEIGHT_51,LM_SALE_QTY_51,
LM_SALE_AMT_51,LM_SALE_WGH_51,LY_SALE_QTY_51,LY_SALE_AMT_51,
LY_SALE_WGH_51,BUD_SALE_QTY_51
from WEIXIN_PIG_DRAFT
where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_51
And O_Type in(O_TYPE_357,O_TYPE_42);
dbms_output.put_line(SALE_QTY_51); --输出并换行
---------------------52----------------------------------
select
nvl(sum(SALE_QTY),0) , nvl(sum(SALE_AMT),0) ,
nvl(sum(SALE_WEIGHT),0) ,nvl(sum(LM_SALE_QTY),0) ,
nvl(sum(LM_SALE_AMT),0) ,nvl(sum( LM_SALE_WGH),0) ,
nvl(sum(LY_SALE_QTY),0) ,nvl(sum(LY_SALE_AMT),0) ,
nvl(sum(LY_SALE_WGH),0) ,
NVL(SUM(BUD_SALE_QTY),0)
into SALE_QTY_52,SALE_AMT_52,SALE_WEIGHT_52,LM_SALE_QTY_52,
LM_SALE_AMT_52,LM_SALE_WGH_52,LY_SALE_QTY_52,LY_SALE_AMT_52,
LY_SALE_WGH_52,BUD_SALE_QTY_52
from WEIXIN_PIG_DRAFT
where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_52
And O_Type in(O_TYPE_357,O_TYPE_42);
dbms_output.put_line(SALE_QTY_52); --输出并换行
-----------------------------------------------------------------------
----------------计算大区-省-------------------------------------------------------
SALE_QTY_ZZ :=SALE_QTY_50 + SALE_QTY_51 +SALE_QTY_52;
SALE_AMT_ZZ:= SALE_AMT_50+SALE_AMT_51+SALE_AMT_52;
SALE_WEIGHT_ZZ:=SALE_WEIGHT_50+SALE_WEIGHT_51+SALE_WEIGHT_52;
LM_SALE_QTY_ZZ := LM_SALE_QTY_50 + LM_SALE_QTY_51 +LM_SALE_QTY_52;
LM_SALE_AMT_ZZ := LM_SALE_AMT_50 + LM_SALE_AMT_51 +LM_SALE_AMT_52;
LM_SALE_WGH_ZZ:= LM_SALE_WGH_50+LM_SALE_WGH_51+LM_SALE_WGH_52;
LY_SALE_QTY_ZZ:=LY_SALE_QTY_50 + LY_SALE_QTY_51 +LY_SALE_QTY_52;
LY_SALE_AMT_ZZ := LY_SALE_AMT_50 + LY_SALE_AMT_51 +LY_SALE_AMT_52;
LY_SALE_WGH_ZZ:= LY_SALE_WGH_50+LY_SALE_WGH_51+LY_SALE_WGH_52;
BUD_SALE_QTY_ZZ:= BUD_SALE_QTY_50+BUD_SALE_QTY_51+BUD_SALE_QTY_52;
---SALE_PRICE_ZZ:= round(decode(round(SALE_WEIGHT_ZZ,0) ,0, 0, SALE_AMT_ZZ) /decode(round(SALE_WEIGHT_ZZ,0) ,0, 1, SALE_WEIGHT_ZZ) ,2) ;
---------------------------------更新大区省------------------------------------------------------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_ZZ ,
SALE_AMT=SALE_AMT_ZZ,
SALE_WEIGHT=SALE_WEIGHT_ZZ,
sale_price=round( decode(SALE_WEIGHT_ZZ ,0,0,SALE_AMT_ZZ) / decode(SALE_WEIGHT_ZZ,0,1,SALE_WEIGHT_ZZ) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_ZZ,
BUD_ACH_RATE=round( decode(BUD_SALE_QTY_ZZ,0,0,SALE_QTY_ZZ) / decode(BUD_SALE_QTY_ZZ,0,1,BUD_SALE_QTY_ZZ) *100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_ZZ,
LM_SALE_AMT=LM_SALE_AMT_ZZ,
LM_SALE_WGH=LM_SALE_WGH_ZZ,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_ZZ ,0,0,LM_SALE_AMT_ZZ) / decode(LM_SALE_WGH_ZZ,0,1,LM_SALE_WGH_ZZ) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LM_SALE_QTY_ZZ)) /DECODE(LM_SALE_QTY_ZZ,0,1,LM_SALE_QTY_ZZ)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_ZZ,
LY_SALE_AMT=LY_SALE_AMT_ZZ,
LY_SALE_WGH=LY_SALE_WGH_ZZ,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_ZZ ,0,0,LY_SALE_AMT_ZZ) / decode(LY_SALE_WGH_ZZ,0,1,LY_SALE_WGH_ZZ) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LY_SALE_QTY_ZZ)) /DECODE(LY_SALE_QTY_ZZ,0,1,LY_SALE_QTY_ZZ)*100 ,2)
WHERE DT=P_DATE AND O_CODE=O_TYPE_357 AND O_NAME = PROVICE_NAME ;
delete from WEIXIN_PIG_DRAFT WHERE DT=P_DATE AND O_CODE=O_TYPE_42 AND O_NAME = PROVICE_NAME ;
-------------------------------------------更新江苏省---------------------------------------------------------------------------------------------------------------------------
------------------1 更新种猪-----------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_50 ,
SALE_AMT=SALE_AMT_50,
SALE_WEIGHT=SALE_WEIGHT_50,
sale_price=round(decode(SALE_WEIGHT_50 ,0,0,SALE_AMT_50) / decode(SALE_WEIGHT_50,0,1,SALE_WEIGHT_50) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_50,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_50,0,0,SALE_QTY_50)/ DECODE(BUD_SALE_QTY_50,0,1,BUD_SALE_QTY_50)*100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_50,
LM_SALE_AMT=LM_SALE_AMT_50,
LM_SALE_WGH=LM_SALE_WGH_50,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_50 ,0,0,LM_SALE_AMT_50) / decode(LM_SALE_WGH_50,0,1,LM_SALE_WGH_50) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_50 ,0,0,(SALE_QTY_50 - LM_SALE_QTY_50)) /DECODE(LM_SALE_QTY_50,0,1,LM_SALE_QTY_50)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_50,
LY_SALE_AMT=LY_SALE_AMT_50,
LY_SALE_WGH=LY_SALE_WGH_50,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_50 ,0,0,LY_SALE_AMT_50) / decode(LY_SALE_WGH_50,0,1,LY_SALE_WGH_50) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_50 ,0,0,(SALE_QTY_50 - LY_SALE_QTY_50)) /DECODE(LY_SALE_QTY_50,0,1,LY_SALE_QTY_50)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_50
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_50
And O_Type in (O_TYPE_42);
-------------------------------------------
------------------2 更新肥猪-----------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_51 ,
SALE_AMT=SALE_AMT_51,
SALE_WEIGHT=SALE_WEIGHT_51,
sale_price=round(decode(SALE_WEIGHT_51 ,0,0,SALE_AMT_51) / decode(SALE_WEIGHT_51,0,1,SALE_WEIGHT_51) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_51,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_51,0,0,SALE_QTY_51)/ DECODE(BUD_SALE_QTY_51,0,1,BUD_SALE_QTY_51)*100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_51,
LM_SALE_AMT=LM_SALE_AMT_51,
LM_SALE_WGH=LM_SALE_WGH_51,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_51 ,0,0,LM_SALE_AMT_51) / decode(LM_SALE_WGH_51,0,1,LM_SALE_WGH_51) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_51 ,0,0,(SALE_QTY_51 - LM_SALE_QTY_51)) /DECODE(LM_SALE_QTY_51,0,1,LM_SALE_QTY_51)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_51,
LY_SALE_AMT=LY_SALE_AMT_51,
LY_SALE_WGH=LY_SALE_WGH_51,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_51 ,0,0,LY_SALE_AMT_51) / decode(LY_SALE_WGH_51,0,1,LY_SALE_WGH_51) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_51 ,0,0,(SALE_QTY_51 - LY_SALE_QTY_51)) /DECODE(LY_SALE_QTY_51,0,1,LY_SALE_QTY_51)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_51
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_51
And O_Type in (O_TYPE_42);
-------------------------------------------
------------------3 更新仔猪-----------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_52 ,
SALE_AMT=SALE_AMT_52,
SALE_WEIGHT=SALE_WEIGHT_52,
sale_price=round(decode(SALE_WEIGHT_52 ,0,0,SALE_AMT_52) / decode(SALE_WEIGHT_52,0,1,SALE_WEIGHT_52) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_52,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_52,0,0,SALE_QTY_52)/ DECODE(BUD_SALE_QTY_52,0,1,BUD_SALE_QTY_52)*100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_52,
LM_SALE_AMT=LM_SALE_AMT_52,
LM_SALE_WGH=LM_SALE_WGH_52,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_52 ,0,0,LM_SALE_AMT_52) / decode(LM_SALE_WGH_52,0,1,LM_SALE_WGH_52) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_52 ,0,0,(SALE_QTY_52 - LM_SALE_QTY_52)) /DECODE(LM_SALE_QTY_52,0,1,LM_SALE_QTY_52)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_52,
LY_SALE_AMT=LY_SALE_AMT_52,
LY_SALE_WGH=LY_SALE_WGH_52,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_52 ,0,0,LY_SALE_AMT_52) / decode(LY_SALE_WGH_52,0,1,LY_SALE_WGH_52) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_52 ,0,0,(SALE_QTY_52 - LY_SALE_QTY_52)) /DECODE(LY_SALE_QTY_52,0,1,LY_SALE_QTY_52)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_52
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_52
And O_Type in (O_TYPE_42);
-------------------------------------------
------------------4.更新合计-------------------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_ZZ ,
SALE_AMT=SALE_AMT_ZZ,
SALE_WEIGHT=SALE_WEIGHT_ZZ,
sale_price=round(decode(SALE_WEIGHT_ZZ ,0,0,SALE_AMT_ZZ ) / decode(SALE_WEIGHT_ZZ,0,1,SALE_WEIGHT_ZZ) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_ZZ,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_ZZ,0,0,SALE_QTY_ZZ)/ DECODE(BUD_SALE_QTY_ZZ,0,1,BUD_SALE_QTY_ZZ)*100,2) ,
LM_SALE_QTY=LM_SALE_QTY_ZZ,
LM_SALE_AMT=LM_SALE_AMT_ZZ,
LM_SALE_WGH=LM_SALE_WGH_ZZ,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_ZZ ,0,0,LM_SALE_AMT_ZZ) / decode(LM_SALE_WGH_ZZ,0,1,LM_SALE_WGH_ZZ) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LM_SALE_QTY_ZZ)) /DECODE(LM_SALE_QTY_ZZ,0,1,LM_SALE_QTY_ZZ)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_ZZ,
LY_SALE_AMT=LY_SALE_AMT_ZZ,
LY_SALE_WGH=LY_SALE_WGH_ZZ,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_ZZ ,0,0,LY_SALE_AMT_ZZ) / decode(LY_SALE_WGH_ZZ,0,1,LY_SALE_WGH_ZZ) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LY_SALE_QTY_ZZ)) /DECODE(LY_SALE_QTY_ZZ,0,1,LY_SALE_QTY_ZZ)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE='ZZZ'
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE='ZZZ'
And O_Type in (O_TYPE_42);
---------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end UPDATE_SAME_PROVICE;
PROVICE_NAME varchar2(100) default '江苏';
O_TYPE_357 varchar2(100) default 'PV-PR357';
O_TYPE_42 varchar2(100) default 'PV-PR42';
SALE_QTY_50 NUMBER default 0;
SALE_AMT_50 NUMBER default 0;
SALE_WEIGHT_50 NUMBER default 0;
SALE_PRICE_50 NUMBER default 0;
BUD_SALE_QTY_50 NUMBER default 0;
BUD_ACH_RATE_50 NUMBER default 0;
LM_SALE_QTY_50 NUMBER default 0;
LM_SALE_WGH_50 NUMBER default 0;
LM_SALE_AMT_50 NUMBER default 0;
LM_SALE_PRICE_50 NUMBER default 0;
LM_ACH_RATE_50 NUMBER default 0;
LY_SALE_QTY_50 NUMBER default 0;
LY_SALE_WGH_50 NUMBER default 0;
LY_SALE_AMT_50 NUMBER default 0;
LY_SALE_PRICE_50 NUMBER default 0;
LY_ACH_RATE_50 NUMBER default 0;
SALE_QTY_51 NUMBER default 0;
SALE_AMT_51 NUMBER default 0;
SALE_WEIGHT_51 NUMBER default 0;
SALE_PRICE_51 NUMBER default 0;
BUD_SALE_QTY_51 NUMBER default 0;
BUD_ACH_RATE_51 NUMBER default 0;
LM_SALE_QTY_51 NUMBER default 0;
LM_SALE_WGH_51 NUMBER default 0;
LM_SALE_AMT_51 NUMBER default 0;
LM_SALE_PRICE_51 NUMBER default 0;
LM_ACH_RATE_51 NUMBER default 0;
LY_SALE_QTY_51 NUMBER default 0;
LY_SALE_WGH_51 NUMBER default 0;
LY_SALE_AMT_51 NUMBER default 0;
LY_SALE_PRICE_51 NUMBER default 0;
LY_ACH_RATE_51 NUMBER default 0;
SALE_QTY_52 NUMBER default 0;
SALE_AMT_52 NUMBER default 0;
SALE_WEIGHT_52 NUMBER default 0;
SALE_PRICE_52 NUMBER default 0;
BUD_SALE_QTY_52 NUMBER default 0;
BUD_ACH_RATE_52 NUMBER default 0;
LM_SALE_QTY_52 NUMBER default 0;
LM_SALE_WGH_52 NUMBER default 0;
LM_SALE_AMT_52 NUMBER default 0;
LM_SALE_PRICE_52 NUMBER default 0;
LM_ACH_RATE_52 NUMBER default 0;
LY_SALE_QTY_52 NUMBER default 0;
LY_SALE_WGH_52 NUMBER default 0;
LY_SALE_AMT_52 NUMBER default 0;
LY_SALE_PRICE_52 NUMBER default 0;
LY_ACH_RATE_52 NUMBER default 0;
SALE_QTY_ZZ NUMBER default 0;
SALE_AMT_ZZ NUMBER default 0;
SALE_WEIGHT_ZZ NUMBER default 0;
SALE_PRICE_ZZ NUMBER default 0;
BUD_SALE_QTY_ZZ NUMBER default 0;
BUD_ACH_RATE_ZZ NUMBER default 0;
LM_SALE_QTY_ZZ NUMBER default 0;
LM_SALE_WGH_ZZ NUMBER default 0;
LM_SALE_AMT_ZZ NUMBER default 0;
LM_SALE_PRICE_ZZ NUMBER default 0;
LM_ACH_RATE_ZZ NUMBER default 0;
LY_SALE_QTY_ZZ NUMBER default 0;
LY_SALE_WGH_ZZ NUMBER default 0;
LY_SALE_AMT_ZZ NUMBER default 0;
LY_SALE_PRICE_ZZ NUMBER default 0;
LY_ACH_RATE_ZZ NUMBER default 0;
O_CODE_50 varchar2(100) default '50';
O_CODE_51 varchar2(100) default '51';
O_CODE_52 varchar2(100) default '52';
O_CODE_ZZ varchar2(100) default 'ZZ';
begin
---------50----------
select
nvl(sum(SALE_QTY),0) , nvl(sum(SALE_AMT),0) ,
nvl(sum(SALE_WEIGHT),0) ,nvl(sum(LM_SALE_QTY),0) ,
nvl(sum(LM_SALE_AMT),0) ,nvl(sum( LM_SALE_WGH),0) ,
nvl(sum(LY_SALE_QTY),0) ,nvl(sum(LY_SALE_AMT),0) ,
nvl(sum(LY_SALE_WGH),0) ,
NVL(SUM(BUD_SALE_QTY),0)
into SALE_QTY_50,SALE_AMT_50,SALE_WEIGHT_50,LM_SALE_QTY_50,
LM_SALE_AMT_50,LM_SALE_WGH_50,LY_SALE_QTY_50,LY_SALE_AMT_50,
LY_SALE_WGH_50,BUD_SALE_QTY_50
from WEIXIN_PIG_DRAFT
where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_50
And O_Type in(O_TYPE_357,O_TYPE_42);
dbms_output.put_line(SALE_QTY_50); --输出并换行
---------------------51----------------------------------
select
nvl(sum(SALE_QTY),0) , nvl(sum(SALE_AMT),0) ,
nvl(sum(SALE_WEIGHT),0) ,nvl(sum(LM_SALE_QTY),0) ,
nvl(sum(LM_SALE_AMT),0) ,nvl(sum( LM_SALE_WGH),0) ,
nvl(sum(LY_SALE_QTY),0) ,nvl(sum(LY_SALE_AMT),0) ,
nvl(sum(LY_SALE_WGH),0),
NVL(SUM(BUD_SALE_QTY),0)
into SALE_QTY_51,SALE_AMT_51,SALE_WEIGHT_51,LM_SALE_QTY_51,
LM_SALE_AMT_51,LM_SALE_WGH_51,LY_SALE_QTY_51,LY_SALE_AMT_51,
LY_SALE_WGH_51,BUD_SALE_QTY_51
from WEIXIN_PIG_DRAFT
where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_51
And O_Type in(O_TYPE_357,O_TYPE_42);
dbms_output.put_line(SALE_QTY_51); --输出并换行
---------------------52----------------------------------
select
nvl(sum(SALE_QTY),0) , nvl(sum(SALE_AMT),0) ,
nvl(sum(SALE_WEIGHT),0) ,nvl(sum(LM_SALE_QTY),0) ,
nvl(sum(LM_SALE_AMT),0) ,nvl(sum( LM_SALE_WGH),0) ,
nvl(sum(LY_SALE_QTY),0) ,nvl(sum(LY_SALE_AMT),0) ,
nvl(sum(LY_SALE_WGH),0) ,
NVL(SUM(BUD_SALE_QTY),0)
into SALE_QTY_52,SALE_AMT_52,SALE_WEIGHT_52,LM_SALE_QTY_52,
LM_SALE_AMT_52,LM_SALE_WGH_52,LY_SALE_QTY_52,LY_SALE_AMT_52,
LY_SALE_WGH_52,BUD_SALE_QTY_52
from WEIXIN_PIG_DRAFT
where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_52
And O_Type in(O_TYPE_357,O_TYPE_42);
dbms_output.put_line(SALE_QTY_52); --输出并换行
-----------------------------------------------------------------------
----------------计算大区-省-------------------------------------------------------
SALE_QTY_ZZ :=SALE_QTY_50 + SALE_QTY_51 +SALE_QTY_52;
SALE_AMT_ZZ:= SALE_AMT_50+SALE_AMT_51+SALE_AMT_52;
SALE_WEIGHT_ZZ:=SALE_WEIGHT_50+SALE_WEIGHT_51+SALE_WEIGHT_52;
LM_SALE_QTY_ZZ := LM_SALE_QTY_50 + LM_SALE_QTY_51 +LM_SALE_QTY_52;
LM_SALE_AMT_ZZ := LM_SALE_AMT_50 + LM_SALE_AMT_51 +LM_SALE_AMT_52;
LM_SALE_WGH_ZZ:= LM_SALE_WGH_50+LM_SALE_WGH_51+LM_SALE_WGH_52;
LY_SALE_QTY_ZZ:=LY_SALE_QTY_50 + LY_SALE_QTY_51 +LY_SALE_QTY_52;
LY_SALE_AMT_ZZ := LY_SALE_AMT_50 + LY_SALE_AMT_51 +LY_SALE_AMT_52;
LY_SALE_WGH_ZZ:= LY_SALE_WGH_50+LY_SALE_WGH_51+LY_SALE_WGH_52;
BUD_SALE_QTY_ZZ:= BUD_SALE_QTY_50+BUD_SALE_QTY_51+BUD_SALE_QTY_52;
---SALE_PRICE_ZZ:= round(decode(round(SALE_WEIGHT_ZZ,0) ,0, 0, SALE_AMT_ZZ) /decode(round(SALE_WEIGHT_ZZ,0) ,0, 1, SALE_WEIGHT_ZZ) ,2) ;
---------------------------------更新大区省------------------------------------------------------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_ZZ ,
SALE_AMT=SALE_AMT_ZZ,
SALE_WEIGHT=SALE_WEIGHT_ZZ,
sale_price=round( decode(SALE_WEIGHT_ZZ ,0,0,SALE_AMT_ZZ) / decode(SALE_WEIGHT_ZZ,0,1,SALE_WEIGHT_ZZ) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_ZZ,
BUD_ACH_RATE=round( decode(BUD_SALE_QTY_ZZ,0,0,SALE_QTY_ZZ) / decode(BUD_SALE_QTY_ZZ,0,1,BUD_SALE_QTY_ZZ) *100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_ZZ,
LM_SALE_AMT=LM_SALE_AMT_ZZ,
LM_SALE_WGH=LM_SALE_WGH_ZZ,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_ZZ ,0,0,LM_SALE_AMT_ZZ) / decode(LM_SALE_WGH_ZZ,0,1,LM_SALE_WGH_ZZ) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LM_SALE_QTY_ZZ)) /DECODE(LM_SALE_QTY_ZZ,0,1,LM_SALE_QTY_ZZ)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_ZZ,
LY_SALE_AMT=LY_SALE_AMT_ZZ,
LY_SALE_WGH=LY_SALE_WGH_ZZ,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_ZZ ,0,0,LY_SALE_AMT_ZZ) / decode(LY_SALE_WGH_ZZ,0,1,LY_SALE_WGH_ZZ) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LY_SALE_QTY_ZZ)) /DECODE(LY_SALE_QTY_ZZ,0,1,LY_SALE_QTY_ZZ)*100 ,2)
WHERE DT=P_DATE AND O_CODE=O_TYPE_357 AND O_NAME = PROVICE_NAME ;
delete from WEIXIN_PIG_DRAFT WHERE DT=P_DATE AND O_CODE=O_TYPE_42 AND O_NAME = PROVICE_NAME ;
-------------------------------------------更新江苏省---------------------------------------------------------------------------------------------------------------------------
------------------1 更新种猪-----------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_50 ,
SALE_AMT=SALE_AMT_50,
SALE_WEIGHT=SALE_WEIGHT_50,
sale_price=round(decode(SALE_WEIGHT_50 ,0,0,SALE_AMT_50) / decode(SALE_WEIGHT_50,0,1,SALE_WEIGHT_50) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_50,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_50,0,0,SALE_QTY_50)/ DECODE(BUD_SALE_QTY_50,0,1,BUD_SALE_QTY_50)*100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_50,
LM_SALE_AMT=LM_SALE_AMT_50,
LM_SALE_WGH=LM_SALE_WGH_50,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_50 ,0,0,LM_SALE_AMT_50) / decode(LM_SALE_WGH_50,0,1,LM_SALE_WGH_50) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_50 ,0,0,(SALE_QTY_50 - LM_SALE_QTY_50)) /DECODE(LM_SALE_QTY_50,0,1,LM_SALE_QTY_50)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_50,
LY_SALE_AMT=LY_SALE_AMT_50,
LY_SALE_WGH=LY_SALE_WGH_50,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_50 ,0,0,LY_SALE_AMT_50) / decode(LY_SALE_WGH_50,0,1,LY_SALE_WGH_50) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_50 ,0,0,(SALE_QTY_50 - LY_SALE_QTY_50)) /DECODE(LY_SALE_QTY_50,0,1,LY_SALE_QTY_50)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_50
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_50
And O_Type in (O_TYPE_42);
-------------------------------------------
------------------2 更新肥猪-----------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_51 ,
SALE_AMT=SALE_AMT_51,
SALE_WEIGHT=SALE_WEIGHT_51,
sale_price=round(decode(SALE_WEIGHT_51 ,0,0,SALE_AMT_51) / decode(SALE_WEIGHT_51,0,1,SALE_WEIGHT_51) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_51,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_51,0,0,SALE_QTY_51)/ DECODE(BUD_SALE_QTY_51,0,1,BUD_SALE_QTY_51)*100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_51,
LM_SALE_AMT=LM_SALE_AMT_51,
LM_SALE_WGH=LM_SALE_WGH_51,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_51 ,0,0,LM_SALE_AMT_51) / decode(LM_SALE_WGH_51,0,1,LM_SALE_WGH_51) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_51 ,0,0,(SALE_QTY_51 - LM_SALE_QTY_51)) /DECODE(LM_SALE_QTY_51,0,1,LM_SALE_QTY_51)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_51,
LY_SALE_AMT=LY_SALE_AMT_51,
LY_SALE_WGH=LY_SALE_WGH_51,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_51 ,0,0,LY_SALE_AMT_51) / decode(LY_SALE_WGH_51,0,1,LY_SALE_WGH_51) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_51 ,0,0,(SALE_QTY_51 - LY_SALE_QTY_51)) /DECODE(LY_SALE_QTY_51,0,1,LY_SALE_QTY_51)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_51
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_51
And O_Type in (O_TYPE_42);
-------------------------------------------
------------------3 更新仔猪-----------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_52 ,
SALE_AMT=SALE_AMT_52,
SALE_WEIGHT=SALE_WEIGHT_52,
sale_price=round(decode(SALE_WEIGHT_52 ,0,0,SALE_AMT_52) / decode(SALE_WEIGHT_52,0,1,SALE_WEIGHT_52) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_52,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_52,0,0,SALE_QTY_52)/ DECODE(BUD_SALE_QTY_52,0,1,BUD_SALE_QTY_52)*100 ,2) ,
LM_SALE_QTY=LM_SALE_QTY_52,
LM_SALE_AMT=LM_SALE_AMT_52,
LM_SALE_WGH=LM_SALE_WGH_52,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_52 ,0,0,LM_SALE_AMT_52) / decode(LM_SALE_WGH_52,0,1,LM_SALE_WGH_52) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_52 ,0,0,(SALE_QTY_52 - LM_SALE_QTY_52)) /DECODE(LM_SALE_QTY_52,0,1,LM_SALE_QTY_52)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_52,
LY_SALE_AMT=LY_SALE_AMT_52,
LY_SALE_WGH=LY_SALE_WGH_52,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_52 ,0,0,LY_SALE_AMT_52) / decode(LY_SALE_WGH_52,0,1,LY_SALE_WGH_52) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_52 ,0,0,(SALE_QTY_52 - LY_SALE_QTY_52)) /DECODE(LY_SALE_QTY_52,0,1,LY_SALE_QTY_52)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_52
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE=O_CODE_52
And O_Type in (O_TYPE_42);
-------------------------------------------
------------------4.更新合计-------------------
UPDATE WEIXIN_PIG_DRAFT SET SALE_QTY=SALE_QTY_ZZ ,
SALE_AMT=SALE_AMT_ZZ,
SALE_WEIGHT=SALE_WEIGHT_ZZ,
sale_price=round(decode(SALE_WEIGHT_ZZ ,0,0,SALE_AMT_ZZ ) / decode(SALE_WEIGHT_ZZ,0,1,SALE_WEIGHT_ZZ) ,2) ,
BUD_SALE_QTY=BUD_SALE_QTY_ZZ,
BUD_ACH_RATE=ROUND(DECODE(BUD_SALE_QTY_ZZ,0,0,SALE_QTY_ZZ)/ DECODE(BUD_SALE_QTY_ZZ,0,1,BUD_SALE_QTY_ZZ)*100,2) ,
LM_SALE_QTY=LM_SALE_QTY_ZZ,
LM_SALE_AMT=LM_SALE_AMT_ZZ,
LM_SALE_WGH=LM_SALE_WGH_ZZ,
-- round(DECODE(SUM(nvl(LM_SALE_QTY,0)),0,0,(SUM(nvl(LM_SALE_QTY,0)*nvl(LM_SALE_PRICE,0)))/SUM(nvl(LM_SALE_QTY,0))),2) LM_SALE_PRICE,
LM_SALE_PRICE= round(decode(LM_SALE_WGH_ZZ ,0,0,LM_SALE_AMT_ZZ) / decode(LM_SALE_WGH_ZZ,0,1,LM_SALE_WGH_ZZ) ,2) ,
LM_ACH_RATE= ROUND(DECODE(LM_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LM_SALE_QTY_ZZ)) /DECODE(LM_SALE_QTY_ZZ,0,1,LM_SALE_QTY_ZZ)*100 ,2) ,
LY_SALE_QTY=LY_SALE_QTY_ZZ,
LY_SALE_AMT=LY_SALE_AMT_ZZ,
LY_SALE_WGH=LY_SALE_WGH_ZZ,
LY_SALE_PRICE= round(decode(LY_SALE_WGH_ZZ ,0,0,LY_SALE_AMT_ZZ) / decode(LY_SALE_WGH_ZZ,0,1,LY_SALE_WGH_ZZ) ,2) ,
LY_ACH_RATE= ROUND(DECODE(LY_SALE_QTY_ZZ ,0,0,(SALE_QTY_ZZ - LY_SALE_QTY_ZZ)) /DECODE(LY_SALE_QTY_ZZ,0,1,LY_SALE_QTY_ZZ)*100 ,2)
WHERE O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE='ZZZ'
And O_Type in (O_TYPE_357);
delete from WEIXIN_PIG_DRAFT where O_TYPE_NAME =PROVICE_NAME
And DT= P_DATE
AND O_CODE='ZZZ'
And O_Type in (O_TYPE_42);
---------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end UPDATE_SAME_PROVICE;