📄 付款_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),
供应商 VARCHAR(10),
货币 VARCHAR(10),
支票序号 VARCHAR(20),
借方_原币 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
INSERT INTO #付款 (供应商,货币,支票序号,贷方_原币,科目编码 )
SELECT 供应商编码,货币,支票序号,支票金额, '现金' FROM 付款主表
WHERE 支票金额>0
DECLARE EXCA SCROLL CURSOR FOR
SELECT 外币编码,汇率,年月 FROM 货币汇率
OPEN EXCA
DECLARE @外币编码 VARCHAR(30),@汇率 NUMERIC(18,6),@年月 DATETIME
FETCH EXCA INTO @外币编码,@汇率,@年月
WHILE @@FETCH_STATUS=0
BEGIN
UPDATE #付款 SET 借方_本币=借方_原币*@汇率,贷方_本币=贷方_原币*@汇率 WHERE 货币=@外币编码
AND year(GETDATE())=year(@年月) AND month (GETDATE())=MONTH(@年月)
FETCH EXCA INTO @外币编码,@汇率,@年月
END
CLOSE EXCA
DEALLOCATE EXCA
IF @SUM='D'
SELECT 供应商,货币,支票序号,科目编码,借方_原币,借方_本币,贷方_原币,贷方_本币 FROM #付款
ELSE
IF @SUM='S'
BEGIN
SELECT 科目编码,SUM(借方_原币) AS 借方_原币,SUM(借方_本币) AS 借方_本币 ,SUM(贷方_原币) AS 贷方_原币, SUM(贷方_本币) AS 贷方_本币
FROM #付款
GROUP BY 科目编码
END
-- EXEC 付款_PROC 'D'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -