应收_proc.sql
来自「SQL server 进销存软件数据库设计。大家积极下载」· SQL 代码 · 共 62 行
SQL
62 行
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),
销售订单 INT,
凭证号 INT,
行 INT,
货币 VARCHAR(10),
借方_原币 NUMERIC(18,6) DEFAULT(0),
借方_本币 NUMERIC(18,6) DEFAULT(0),
贷方_原币 NUMERIC(18,6) DEFAULT(0),
贷方_本币 NUMERIC(18,6) DEFAULT(0))
INSERT INTO #应收 (销售订单,凭证号,货币,借方_原币,科目编码 )
SELECT 销售订单,凭证号,货币,发票金额+增值税金额,
'应收账款'FROM 销售记账凭证
WHERE 发票金额+增值税金额>0
OR 发票金额+增值税金额<0/*出库时大于零,退货时小于零*/
ORDER BY 凭证号
INSERT INTO #应收 (销售订单,凭证号,货币,贷方_原币,科目编码 )
SELECT 销售订单,凭证号,货币,发票金额, '产品销售收入' FROM 销售记账凭证
WHERE 发票金额>0 OR 发票金额<0 ORDER BY 凭证号
INSERT INTO #应收 (销售订单,凭证号,货币,贷方_原币,科目编码 )
SELECT 销售订单,凭证号,货币,增值税金额 , '应交税金-增值税' FROM 销售记账凭证
WHERE 增值税金额>0 OR 增值税金额<0 ORDER BY 凭证号
DECLARE EXCS SCROLL CURSOR FOR
SELECT 外币编码,汇率,年月 FROM 货币汇率
OPEN EXCS
DECLARE @外币编码 VARCHAR(30),@汇率 NUMERIC(18,6),@年月 DATETIME
FETCH EXCS INTO @外币编码,@汇率,@年月
WHILE @@FETCH_STATUS=0
BEGIN
UPDATE #应收 SET 借方_本币=借方_原币*@汇率,贷方_本币=贷方_原币*@汇率 WHERE 货币=@外币编码
AND year(GETDATE())=year(@年月) AND month (GETDATE())=MONTH(@年月)
FETCH EXCS INTO @外币编码,@汇率,@年月
END
CLOSE EXCS
DEALLOCATE EXCS
IF @SUM='D'
SELECT * FROM #应收
ELSE
IF @SUM='S'
BEGIN
SELECT 科目编码,SUM(借方_原币) AS 借方_原币,SUM(贷方_原币) AS 贷方_原币,
SUM(借方_本币) AS 借方_本币,SUM(贷方_本币) AS 贷方_本币
FROM #应收 GROUP BY 科目编码
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?