?? proc_實地盤點過賬.sql
字號:
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME= 'PROC_實地盤點過賬' AND TYPE='P')
DROP PROC PROC_實地盤點過賬
go
CREATE PROC PROC_實地盤點過賬
AS
DECLARE
@年 INT,@月 INT,@物料編碼 VARCHAR(30),@數量差異 NUMERIC,@倉庫編碼 VARCHAR(10),@貨位 VARCHAR(10),
@材料成本金額 NUMERIC,@批號 VARCHAR(30),@人工成本金額 NUMERIC,@制造費用金額 NUMERIC
create table #實地盤點過賬_累計
(
物料編碼 VARCHAR(30),
年 INT,
月 INT,
數量差異 numeric,
材料成本金額 numeric ,
人工成本金額 numeric ,
制造費用金額 numeric )
create table #實地盤點過賬_貨位
(
物料編碼 VARCHAR(30),
倉庫編碼 VARCHAR(10),
貨位 VARCHAR(10),
批號 VARCHAR(15),
數量差異 numeric(18,6))
insert into #實地盤點過賬_累計 select 物料編碼,YEAR(日期),MONTH(日期),SUM(實際數量-截止數量) as 數量差異 ,SUM(材料成本金額)as 材料成本金額 ,
SUM(人工成本金額) as 人工成本金額, SUM(制造費用金額) as 制造費用金額
FROM 實地盤點數據表 GROUP BY 物料編碼,日期,日期
insert into #實地盤點過賬_貨位 select 物料編碼,倉庫編碼,貨位,批號,SUM(實際數量-截止數量) as 數量差異 FROM 實地盤點數據表 GROUP BY 物料編碼,倉庫編碼,貨位,批號
declare p1 scroll cursor
for
select 物料編碼,年,月,數量差異,材料成本金額,人工成本金額 ,制造費用金額 from #實地盤點過賬_累計
open p1
fetch p1 into @物料編碼,@年,@月,@數量差異,@材料成本金額,@人工成本金額,@制造費用金額
while @@fetch_status=0
begin
if not exists(select * from 明細庫存表 where 物料編碼=@物料編碼 AND 年=@年 AND 月=@月 )
INSERT 明細庫存表 (物料編碼,年,月,入庫累計數量,入庫累計材料成本,入庫累計人工成本,入庫累計制造費用)VALUES( @物料編碼,@年,@月,@數量差異,@材料成本金額,@人工成本金額,@制造費用金額)
ELSE
UPDATE 明細庫存表 SET 入庫累計數量=入庫累計數量+@數量差異, 入庫累計材料成本=入庫累計材料成本+@材料成本金額,
入庫累計人工成本=入庫累計人工成本+@人工成本金額,入庫累計制造費用=入庫累計制造費用+@制造費用金額 WHERE 物料編碼=@物料編碼 AND 年=@年 AND 月=@月
fetch from p1 into @物料編碼,@年,@月,@數量差異,@材料成本金額,@人工成本金額 ,@制造費用金額
end
close p1
deallocate p1
declare p2 scroll cursor
for
select 物料編碼,倉庫編碼,貨位,批號,數量差異 from #實地盤點過賬_貨位
open p2
fetch from p2 into @物料編碼,@倉庫編碼,@貨位,@批號,@數量差異
while @@fetch_status=0
begin
if not exists(select * from 物料與貨位對照表 where 物料編碼=@物料編碼 AND 貨位編碼=@貨位 AND 批號=@批號 AND 倉庫編碼=@倉庫編碼)
INSERT 物料與貨位對照表 (物料編碼,倉庫編碼,貨位編碼,批號,貨位存量)VALUES( @物料編碼,@倉庫編碼,@貨位,@批號,@數量差異)
ELSE
UPDATE 物料與貨位對照表 SET 貨位存量=貨位存量+@數量差異 WHERE 物料編碼=@物料編碼 AND 貨位編碼=@貨位 AND 批號=@批號 AND 倉庫編碼=@倉庫編碼
fetch from p2 into @物料編碼,@倉庫編碼,@貨位,@批號,@數量差異
end
close p2
deallocate p2
-- EXEC PROC_實地盤點過賬
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -