PiolotTH_ReportFrom/派诺报表SQL文件/应收情况概况表按SBU区分插入数据SQL.sql
李狗蛋 65ab3058c9 1
2025-04-02 11:15:33 +08:00

100 lines
2.9 KiB
Transact-SQL

CREATE PROCEDURE YSQKGKSBU_GZTH
@FSDate NVARCHAR(100),
@FEDate NVARCHAR(100)
AS
BEGIN
DECLARE @SumDQJE DECIMAL(23,10)
--定义变量
DECLARE @FEDateDate DATE;
--判断@FEDate日期是否为空
IF @FEDate IS NULL OR @FEDate = ''
BEGIN
SET @FEDateDate = GETDATE();
END
ELSE
BEGIN
-- 转换为日期类型
SET @FEDateDate = CONVERT(DATE, @FEDate);
END
-- 获取上一年的 12 月 31 日
SET @FEDateDate = DATEFROMPARTS(YEAR(@FEDateDate) - 1, 12, 31);
--清空表里的数据
TRUNCATE TABLE YSQKGK_SBU_GZTH
--查询到期时间为年初前的到期金额
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #NCTEMP1 FROM ZRP_YingShouMingXi_yuyubo
WHERE [到期时间] <= @FEDateDate
GROUP BY [SBU]
--插入到期时间为年初前的到期金额
INSERT INTO YSQKGK_SBU_GZTH([SBU],[年初到期应收款额])
SELECT [SBU],[到期金额] FROM #NCTEMP1 WHERE [到期金额] <> 0
--查询到期时间为年初前的到期金额,且收款人=应收款专责小组
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #NCZZTEMP1 FROM ZRP_YingShouMingXi_yuyubo
WHERE [到期时间] <= @FEDateDate AND [收款人] = '应收款专责小组'
GROUP BY [SBU]
--插入到期时间为年初前的到期金额,且收款人=应收款专责小组
INSERT INTO YSQKGK_SBU_GZTH([SBU],[其中_年初应收款专责小组])
SELECT [SBU],[到期金额] FROM #NCZZTEMP1 WHERE [到期金额] <> 0
--查询本年度到期时间的到期金额
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #BNTEMP1
FROM ZRP_YingShouMingXi_yuyubo
WHERE
(@FSDate = '' OR [到期时间] >= @FSDate)
AND(@FEDate= '' OR [到期时间] <= @FEDate)
GROUP BY [SBU]
--插入本年度到期时间的到期金额
INSERT INTO YSQKGK_SBU_GZTH([SBU],[本年到期应收款额])
SELECT [SBU],[到期金额] FROM #BNTEMP1 WHERE [到期金额] <> 0
--查询本年度到期时间的到期金额,其中收款人=应收款专责小组
SELECT [SBU],SUM([到期金额]) AS '到期金额' INTO #BNZZTEMP1
FROM ZRP_YingShouMingXi_yuyubo
WHERE
(@FSDate = '' OR [到期时间] >= @FSDate)
AND(@FEDate= '' OR [到期时间] <= @FEDate)
AND [收款人] = '应收款专责小组'
GROUP BY [SBU]
INSERT INTO YSQKGK_SBU_GZTH([SBU],[其中_年初应收款专责小组])
SELECT [SBU],[到期金额] FROM #BNZZTEMP1 WHERE [到期金额] <> 0
SELECT *
INTO #TEMP1
FROM(
SELECT [SBU],
SUM([年初到期应收款额]) AS 年初到期应收款额,
SUM([其中_年初应收款专责小组]) AS 其中_年初应收款专责小组,
SUM([本年到期应收款额]) AS 本年到期应收款额,
SUM([其中_本年应收款专责小组]) AS 其中_本年应收款专责小组
FROM YSQKGK_SBU_GZTH
GROUP BY [SBU]
)AS YS
--清空表的数据
TRUNCATE TABLE YSQKGK_SBU_GZTH
--重新插入数据
INSERT INTO YSQKGK_SBU_GZTH([SBU],[年初到期应收款额],[其中_年初应收款专责小组],
[本年到期应收款额],[其中_本年应收款专责小组])
SELECT * FROM #TEMP1
--更新占比数据
SELECT @SumDQJE = SUM([本年到期应收款额]) FROM YSQKGK_SBU_GZTH
UPDATE YSQKGK_SBU_GZTH
SET [占比] = CONVERT(VARCHAR, CAST(([本年到期应收款额] / @SumDQJE) * 100 AS DECIMAL(10, 2))) + '%'
--更新变化数据
UPDATE YSQKGK_SBU_GZTH
SET [变化] = ISNULL([本年到期应收款额],0) - ISNULL([年初到期应收款额],0)
DROP TABLE #NCTEMP1,#NCZZTEMP1,#BNTEMP1,#BNZZTEMP1,#TEMP1
END;