📄 采购日记账_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),
采购单号 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 采购单号
DECLARE EXCz SCROLL CURSOR FOR
SELECT 外币编码,汇率, 年月 FROM 货币汇率
OPEN EXCz
DECLARE @外币编码 VARCHAR(30),@汇率 NUMERIC(18,6),@年月 DATETIME
FETCH EXCz INTO @外币编码,@汇率,@年月
WHILE @@FETCH_STATUS=0
BEGIN
UPDATE #采购日记账 SET 借方_本币=借方_原币*@汇率,贷方_本币=贷方_原币*@汇率 WHERE 货币=@外币编码
AND year(GETDATE())=year(@年月) AND month (GETDATE())=MONTH(@年月)
FETCH EXCz INTO @外币编码,@汇率,@年月
END
CLOSE EXCz
DEALLOCATE EXCz
IF @SUM='D'/*显示未汇总的数据*/
BEGIN
SELECT *FROM #采购日记账
END
ELSE
IF @SUM='P'/*显示按采购单汇总的数据*/
BEGIN
SELECT 科目编码,采购单号,SUM(借方_原币),SUM(借方_本币),SUM(贷方_原币),SUM(贷方_本币)
FROM #采购日记账 GROUP BY 采购单号,科目编码
END
IF @SUM='S' /*显示全部汇总的数据*/
BEGIN
SELECT 科目编码,SUM(借方_原币),SUM(借方_本币),SUM(贷方_原币),SUM(贷方_本币)
FROM #采购日记账 GROUP BY 科目编码
END
-- EXEC 采购日记账_PROC 'D'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -