⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 应付日记账_proc.sql

📁 SQL server 进销存软件数据库设计。大家积极下载
💻 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,
行 INT,
分配日期 DATETIME,
货币 VARCHAR(10),
借方_原币 NUMERIC(18,6) DEFAULT(0),
贷方_原币 NUMERIC(18,6) DEFAULT(0))


CREATE TABLE #应付日记账1
(
序号 INT IDENTITY(1,1),
科目编码 VARCHAR(30),
采购单号 INT,
凭证号 INT,
汇率 NUMERIC(18,6),
分配日期 DATETIME,
行 INT,
货币 VARCHAR(10),
借方_原币 NUMERIC(18,6) DEFAULT(0),
借方_本币  AS 汇率*借方_原币,
贷方_原币 NUMERIC(18,6) DEFAULT(0),
贷方_本币   AS 汇率*贷方_原币 )




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 凭证号

INSERT INTO #应付日记账 (采购单号,凭证号,货币,贷方_原币,科目编码 )
SELECT 采购单号,凭证号,货币,材料金额-发票金额 ,'库存调整' 
FROM 记账凭证
WHERE 材料金额>发票金额

INSERT INTO #应付日记账 (采购单号,凭证号,货币,借方_原币,科目编码 )
SELECT 采购单号,凭证号,货币,发票金额-材料金额 ,'库存调整'  
 FROM 记账凭证
WHERE 材料金额<发票金额
ORDER BY 凭证号

INSERT INTO #应付日记账1 (采购单号,凭证号,货币,借方_原币,贷方_原币,分配日期,汇率 )
SELECT A.采购单号,A.凭证号,A.货币,A.借方_原币,A.贷方_原币, A.分配日期,B.汇率
FROM #应付日记账 A JOIN 货币汇率 B ON A.货币=B.外币编码 
AND YEAR(A.分配日期)=YEAR(B.年月) AND MONTH(A.分配日期)=MONTH(B.年月)




/*DECLARE EXC SCROLL CURSOR FOR
SELECT 外币编码,汇率,年月 FROM 货币汇率 
OPEN EXC
DECLARE @外币编码 VARCHAR(30),@汇率 NUMERIC(18,6),@年月 DATETIME
FETCH EXC INTO @外币编码,@汇率,@年月
WHILE @@FETCH_STATUS=0
BEGIN
UPDATE #应付日记账 SET 借方_本币=借方_原币*@汇率,贷方_本币=贷方_原币*@汇率 WHERE 货币=@外币编码 
AND  year(GETDATE())=year(@年月)   AND month (GETDATE())=MONTH(@年月)
FETCH EXC INTO @外币编码,@汇率,@年月
END
CLOSE EXC
DEALLOCATE EXC*/

IF @SUM='D  '/*显示未汇总的数据*/
BEGIN
SELECT *FROM #应付日记账
END
ELSE
IF @SUM='P  '/*显示按应付单汇总的数据*/
BEGIN
SELECT 科目编码,采购单号,SUM(借方_原币),SUM(借方_本币),SUM(贷方_原币),SUM(贷方_本币)
FROM #应付日记账
GROUP BY 科目编码,采购单号
SELECT *FROM #应付日记账
END
 IF @SUM='S'  /*显示全部汇总的数据*/
BEGIN
SELECT 科目编码,SUM(借方_原币),SUM(借方_本币),SUM(贷方_原币),SUM(贷方_本币)
FROM #应付日记账
GROUP BY 科目编码
END
SELECT* FROM 记账凭证
-- EXEC 应付日记账_PROC  'D'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -