📄 proc_
字号:
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE NAME='PROC_信用限额检查' AND TYPE='P')
DROP PROC PROC_信用限额检查
GO
create PROC PROC_信用限额检查
@CUST VARCHAR(10)
as
CREATE TABLE #C
(
客户编码 VARCHAR(10),
信用限额 NUMERIC(18,6) DEFAULT(0),
预收金额 NUMERIC(18,6) DEFAULT(0),
未开票金额 NUMERIC(18,6) DEFAULT(0),
应收净额 NUMERIC(18,6) DEFAULT(0),
订单剩余金额 NUMERIC(18,6) DEFAULT(0),
信用净额 AS 信用限额+预收金额-未开票金额-应收净额-订单剩余金额)
CREATE TABLE #CC
(客户编码 VARCHAR(10),
销售订单 INT,
出库金额 NUMERIC(18,6) DEFAULT(0),
借方金额 NUMERIC(18,6) DEFAULT(0))
/*插入信用限额*/
INSERT INTO #C (客户编码,信用限额)
SELECT 客户编码,信用限额 FROM 客户主文件 WHERE 客户编码=@CUST
/*插入预收金额*/
INSERT INTO #C (客户编码,预收金额) SELECT 客户编码,预收金额 FROM 销售单主表 WHERE 客户编码=@CUST
/*计算并插入订单剩余金额(含增值税)*/
INSERT INTO #C (客户编码,订单剩余金额)
SELECT 客户编码,SUM((订购数量-出库数量)*发票单价*(1+增值税率))
FROM 销售出库单明细表 WHERE 客户编码=@CUST GROUP BY 客户编码/*订购状态的销售订单剩余金额*/
/*计算并插入应收余额*/
INSERT INTO #C (客户编码,应收净额 )SELECT 客户编码,SUM(借方金额-贷方金额)
FROM 应收账款明细账 WHERE 客户编码=@CUST GROUP BY 客户编码/*应收净额*/
/*在发货金额中,已生应收账款的金额,即插入已开票金额*/
INSERT INTO #CC (客户编码,销售订单,借方金额 )SELECT 客户编码,销售单,SUM(借方金额)
FROM 应收账款明细账 WHERE 客户编码=@CUST GROUP BY 客户编码,销售单
/*插入已发货金额*/
INSERT INTO #Cc (客户编码,销售订单,出库金额)
SELECT 客户编码,销售单号,SUM(出库数量*发票单价*(1+增值税率))
FROM 销售出库单明细表 WHERE 客户编码=@CUST GROUP BY 客户编码,销售单号/*订购状态的销售订单剩余金额*/
/*插入已发货未生成应收账款的金额,即未开票金额*/
INSERT INTO #C (客户编码,未开票金额)
SELECT 客户编码,SUM(出库金额-借方金额)
FROM #CC WHERE 客户编码=@CUST GROUP BY 客户编码
SELECT 客户编码, SUM(信用限额) AS 信用限额,SUM(预收金额) AS 预收金额,
SUM(未开票金额) AS 未开票金额,SUM(应收净额) AS 应收净额,SUM(订单剩余金额) AS 订单剩余金额,
SUM(信用净额) AS 信用净额 FROM #C
GROUP BY 客户编码
-- EXEC PROC_信用限额检查 'C01'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -