📄 应收账龄分析_proc.sql
字号:
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME='应收账龄分析_PROC' AND TYPE='P')
DROP PROC 应收账龄分析_PROC
GO
create PROC 应收账龄分析_PROC
AS
create table #收款汇总
(发票号码 VARCHAR(20),
发票日期 DATETIME,
借方金额 NUMERIC(18,6),
贷方金额 NUMERIC(18,6),
借贷余额 AS 借方金额-贷方金额)
create table #账龄
(发票号码 INT,
[270天] NUMERIC(18,6)DEFAULT(0.0000),
[180天] NUMERIC(18,6)DEFAULT(0.0000),
[120天] NUMERIC(18,6)DEFAULT(0.0000),
[90天] NUMERIC(18,6)DEFAULT(0.0000),
[60天] NUMERIC(18,6)DEFAULT(0.0000),
[45天] NUMERIC(18,6)DEFAULT(0.0000),
[30天] NUMERIC(18,6)DEFAULT(0.0000),
[15天] NUMERIC(18,6)DEFAULT(0.0000),
[0天] NUMERIC(18,6) DEFAULT(0.0000),)
INSERT INTO #收款汇总 (发票号码,发票日期,借方金额,贷方金额)
SELECT 发票号码,发票日期,SUM(借方金额_原币),SUM(贷方金额_原币) FROM 应收账款明细账
GROUP BY 发票号码, 发票日期
DECLARE @日期 DATETIME
SELECT @日期=发票日期 FROM #收款汇总
IF DATEdiff(DY,@日期,GETDATE())>270
INSERT INTO #账龄(发票号码,[270天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())>180
INSERT INTO #账龄(发票号码,[180天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())>120
INSERT INTO #账龄(发票号码,[120天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())>90
INSERT INTO #账龄(发票号码,[90天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())>60
INSERT INTO #账龄(发票号码,[60天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())>45
INSERT INTO #账龄(发票号码,[45天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())>30
INSERT INTO #账龄(发票号码,[30天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())>15
INSERT INTO #账龄(发票号码,[15天])SELECT 发票号码,借贷余额 FROM #收款汇总
ELSE
IF DATEdiff(DY,@日期,GETDATE())=0
INSERT INTO #账龄(发票号码,[0天])SELECT 发票号码,借贷余额 FROM #收款汇总
SELECT *FROM #账龄
--EXEC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -