📄 proc_-
字号:
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 + -