📄 实地盘点_proc.sql
字号:
IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='实地盘点_PROC' AND TYPE='P')
DROP PROC 实地盘点_PROC
GO
create procedure 实地盘点_PROC
@SUM CHAR(1)
AS
CREATE TABLE #实地盘点
(
序号 INT IDENTITY(1,1),
科目编码 VARCHAR(30),
借方 NUMERIC(18,6) DEFAULT(0),
贷方 NUMERIC(18,6) DEFAULT(0))
CREATE TABLE #实地盘点汇总
(
科目编码 VARCHAR(30),
借方 NUMERIC(18,6) DEFAULT(0),
贷方 NUMERIC(18,6) DEFAULT(0))
/*如果调整数量为负数*/
INSERT INTO #实地盘点 (贷方,科目编码 )
SELECT 材料成本金额, '存货_材料' FROM 实地盘点数据表
WHERE 材料成本金额<0
INSERT INTO #实地盘点 (贷方,科目编码 )
SELECT 人工成本金额,'存货_人工' FROM 实地盘点数据表 WHERE 人工成本金额<0
INSERT INTO #实地盘点 (贷方,科目编码 )
SELECT 制造费用金额, '存货_制造' FROM 实地盘点数据表
WHERE 制造费用金额<0
INSERT INTO #实地盘点 (借方,科目编码 )
SELECT 材料成本金额+人工成本金额+制造费用金额,
'库存调整' FROM 实地盘点数据表
WHERE 材料成本金额<0 OR 人工成本金额<0 OR 制造费用金额<0
/*如果调整数量为正数*/
INSERT INTO #实地盘点 (借方,科目编码 )
SELECT 材料成本金额, '存货_材料' FROM 实地盘点数据表
WHERE 材料成本金额>0
INSERT INTO #实地盘点 (借方,科目编码 ) SELECT
人工成本金额, '存货_人工' FROM 实地盘点数据表 WHERE 人工成本金额>0
INSERT INTO #实地盘点 (借方,科目编码 )
SELECT 制造费用金额, '存货_制造' FROM 实地盘点数据表
WHERE 制造费用金额>0
INSERT INTO #实地盘点 (贷方,科目编码 )
SELECT 材料成本金额+人工成本金额+制造费用金额,
'库存调整' FROM 实地盘点数据表
WHERE 材料成本金额>0 OR 人工成本金额>0 OR 制造费用金额>0
IF @SUM='D'
SELECT * FROM #实地盘点
ELSE
IF @SUM='S'
BEGIN
SELECT 科目编码,SUM(借方),SUM(贷方) FROM #实地盘点 GROUP BY 科目编码
END
-- EXEC 实地盘点_PROC 'D'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -